如果这个问题看起来很初级,我深表歉意。我有点不清楚是否可能/如何在 R 中使用带有数据帧列表的 for 循环。
我的数据框是较大数据框的子集:
billysuzy <- subset(userlist,user1 %in% c("billy","suzy"))
joefrank<- subset(userlist,user1 %in% c("joe","frank"))
georgelenny <- subset(userlist,user1 %in% c("george","lenny"))
我想循环查找每个子集的相同变量(时间和 simscore)的相关值。
cor(time, simscore)
但是,我非常不确定如何构造这样的 for 循环,并且不确定如何构造一个函数以在 lapply 中附加和分离。
我在想:
somelist <- list(billysuzy, joefrank, georgelenny)
与lapply:
corz <- lapply(somelist, function(df) detach(), attach(df),cor(time, simscore))
lapply(corz, print)
或与:
for (i in 1:length(somelist)){
detach()
attach(somelist[i])
cor(time, simscore)
}
我为冒犯任何人的 R 敏感性而道歉,或者如果这看起来像两个问题 - 答案是任何描述如何做一件事的任何一个,即循环遍历列表中的 dfs 并找到正确的值。
最佳答案
我真的建议避免附加
和分离
。
你可以尝试这样的事情
corz <- lapply(somelist, function(df) cor_time_sim = cor(df$time, df$simscore))
或者
corz <- lapply(somelist, function(DF) {with(DF, corst <- cor(time, simscore))})
或者
corz <- lapply(somelist, with, corst <- cor(time, simscore))
关于r - 使用 for 循环或 lapply 迭代 R 列表中的不同数据帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13079449/