我是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循环
谢谢!
答案 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)
如果这有帮助,或者我可以调整解决方案以更好地适应您的用例,请告诉我。 :)