r - 使用 for 循环或 lapply 迭代 R 列表中的不同数据帧

标签 r list for-loop lapply

如果这个问题看起来很初级,我深表歉意。我有点不清楚是否可能/如何在 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/

相关文章:

r - 在R中的矩阵中按行获取最大值到一个点

R - deSolve,参数

python - 如何删除列表中的起始词?

python - 生成器表达式与 for 循环的丑陋组合

java - 循环内的数据库调用有其他选择吗?

r - 如何将管道链(magrittr)的结果提供给对象

r - 在 R Shiny 中,可以使用 DT::dataframe 交互式突出显示单元格吗?

python - 如何在 python 中找到嵌套字典中项目的最大值?

c# - List<T> 应该是私有(private)的吗?

将 C "FOR"循环转换为 Delphi