在循环中组合来自不同日期的数据框

时间:2018-02-14 17:55:49

标签: r for-loop

我是R的新手,非常感谢我能在这里得到一些帮助。

我有一个基于日期的数据集列表。所以df_1_1,df_1_2 ... df_1_31。我计划为每个数据集使用评分函数。例如,得分1.1< -score(df_1_1),我将获得得分A,第1-1天得分B,依此类推。然后我将使用rbind(score1.1,...,score1.31)组合所有得分。

我可以通过输入所有数据集来完成此操作,但是有更有效的方法吗?比如for循环

谢谢!

1 个答案:

答案 0 :(得分:1)

看看这个我认为能够完成你想要做的事情的例子。请注意,我已按照您的要求将分数放入数据框中,即使它们可以更适合列表或向量。

创建简单的数据框:

n1 = c(1, 2 ,3)
n2 = c(4, 5, 6)
m1 = c(7, 8, 9)
m2 = c(10, 11, 12)
df1 <- data.frame(n1, m1)
df2 <- data.frame(n2, m2)

声明数据帧的评分函数:

score <- function(df) {
  return((mean(df[,1] + mean(df[,2])))/2)
}

在对每个数据帧进行评分并分配给新变量时对其进行迭代:

dfs <- list(df1, df2)
for (i in 1:length(dfs)) {
   x <- score(dfs[[i]])
   assign(paste0("score",i), as.data.frame(x))
}

Rbind将单细胞数据框组合在一起

scores <- rbind(score1, score2)

如果这有帮助,或者我可以调整解决方案以更好地适应您的用例,请告诉我。 :)