将结果保存在 R 中的循环中

Posted

技术标签:

【中文标题】将结果保存在 R 中的循环中【英文标题】:Save results on a loop in R 【发布时间】:2020-09-12 19:22:42 【问题描述】:

我正在尝试运行一个保存 for 循环结果的代码。每次for循环运行时,我都想将landa和dlanda的值保存在一个称为最佳的数据框中,其中两列一列用于landa,另一列用于dlanda,但我不知道如何创建这个称为最佳的数据框循环内。这是我的代码:

Mean_Precipitation_July$mean_precip_monthYear
landa <- seq(0,1,by=0.1)
landa
(i <- 0)
(x <- 1)

for(i in landa) 

  T1 <- -(Mean_Precipitation_July$mean_precip_monthYear)^(landa)
  dlanda <- (mean(T1)-median(T1))/var(T1)
  optimal[x,1] <- landa
  optimal[x,2] <- dlanda
  
  i <- i + 0.1
  x<- x + 1

  

【问题讨论】:

先删除i &lt;- i + 0.1,它与for(i in landa)冲突。 T1定义为与Mean_Precipitation_July$mean_precip_monthYearnrow(Mean_Precipitation_July)长度相同的向量,不能保存在optimal[i, 1]中。 我要拯救landa和dlanda,没有T1。我的错误 我使用 i @Sss,你需要在for loop之前创建数据框optimal,然后用循环填充它。我可以试一试,如果可以添加一些数据来处理。 【参考方案1】:

这是一种方法。我使用了一个假的测试数据集,因为 OP 没有发布一个。

测试数据向量命名为data_vec

set.seed(2020)
data_vec <- runif(20, 2, 5)
landa <- seq(0, 1, by = 0.1)


optimal <- matrix(nrow = length(landa), ncol = 2)
optimal <- as.data.frame(optimal)
names(optimal) <- c("landa", "dlanda")

for(i in seq_along(landa)) 
  T1 <- -(data_vec)^landa[i]
  dlanda <- (mean(T1) - median(T1))/var(T1)
  optimal$landa[i] <- landa[i]
  optimal$dlanda[i] <- dlanda

optimal
#   landa    dlanda
#1    0.0       NaN
#2    0.1 7.0957224
#3    0.2 3.0064453
#4    0.3 1.6915265
#5    0.4 1.0659035
#6    0.5 0.7129269
#7    0.6 0.4939882
#8    0.7 0.3498969
#9    0.8 0.2512264
#10   0.9 0.1817638
#11   1.0 0.1318914

【讨论】:

以上是关于将结果保存在 R 中的循环中的主要内容,如果未能解决你的问题,请参考以下文章

如何将此 for 循环的结果保存为向量而不是单个值?

将结果保存到for循环c ++中的文件

R:保存循环的结果

R将结果保存在mac上的word文档中

R -solve_LSAP线索包如何将结果写入txt文件?

matlab循环结果提取