3

我在列表 u 中有一个类似数据帧的列表(4 列,所有列都具有相同的标题),并且想运行一个 lapply 函数来获取每个数据帧的第 2 列和第 3 列的相关性。我希望函数读取任何整数 i (列表有 300+ csvs)。

我试过这段代码,但没有奏效:

i<-1:2
for (i) lapply(u, cor(u[[i]][,2],u[[i]][,3]))  

有人可以帮我修复此代码吗?该程序仍然相当新。

编辑:我尝试了下面的 Metrics 代码并且它有效,不幸的是其中一个 csvs 只包含标题而没有数据。我收到此错误: cor(u[, 2], u[, 3]) 中的错误:'x' 为空

无论如何 sapply 可以修改,以便如果没有任何数据可用,“cor”函数返回 0?

4

1 回答 1

8

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
于 2013-10-08T13:43:35.267 回答