我在列表u中有一个类似数据帧的列表(4列,都有相同的标题),并且想要运行一个lapply函数来获得每个数据帧的第2列和第3列的相关性。我希望函数读取任何整数i(列表有300+ csvs)。
我已经尝试过这段代码,但它没有奏效:
i<-1:2
for (i) lapply(u, cor(u[[i]][,2],u[[i]][,3]))
有人可以帮我解决这个问题吗?该计划仍然相当新。
编辑:我在下面尝试了Metrics代码并且它可以工作,不幸的是其中一个csv只包含标题而没有数据。我收到此错误:cor(u [,2],u [,3])出错:'x'为空
反正是否可以修改sapply,以便在没有任何可用数据时“cor”函数返回0?
答案 0 :(得分:7)
x包含所有数据帧的列表。在下面的示例中,我使用了来自R的两个数据帧(mtcars和iris)
list(mtcars=mtcars,iris=iris)
lapply(x,function(x)cor(x[,2],x[,3]))
[[1]]
[1] 0.9020329
[[2]]
[1] -0.4284401
或者,如果你想要矢量输出:
sapply(x,function(x)cor(x[,2],x[,3]))
[1] 0.9020329 -0.4284401