如何从List中用逗号分隔值?

时间:2015-02-21 00:33:21

标签: r

我想完成一些分析,我已经在一个新的List对象(名为" NAcol")中提取了具有NA值的列数(因为这些列不允许我运行 cor.test()功能)。

好吧,这是我的名单:

> NAcol
[[1]]
 [1]  38  45  52  55  56  57  58  59  60 
[10] 101 102 103 104 105 118 119 120 131 
[19] 134 136 137


>

然后,我想用逗号分隔的这个List的数字来排除我的data.frame的列以运行我的相关性。

这就是我想要的:

cor.test(mydata[,2], mydata[,-c(38, 45, 52, 55, 56, 57, 58, 59, 60, 
                               101, 102, 103, 104, 105, 118, 119, 120, 131, 
                               134, 136, 137 ] )

如您所见,我想排除所有这些列,这些列是我的列表" NAcol" 的编号。

我不知道如何使用或使用哪种功能,我已经尝试了函数unlist()和split()但没有成功。

我非常感谢你的帮助。

达尔文

1 个答案:

答案 0 :(得分:2)

NAcol是一个包含一个元素的列表,它是一个原子向量。您可以使用[[函数访问此向量:

> NAcol <- list(1:10)
> NAcol
[[1]]
 [1]  1  2  3  4  5  6  7  8  9 10

> NAcol[[1]]
 [1]  1  2  3  4  5  6  7  8  9 10

然后按照你的意愿使用它。

编辑:但cor.test仅适用于相同长度的数字向量。正如理查德所说,来自?cor.test

  

x,y:数据值的数字向量。 'x'和'y'必须有             相同的长度。

因此,您可以使用NA函数过滤掉complete.cases个行,而不是过滤出列,或使用na.action的{​​{1}}参数 - 请参阅此处类似的问题:How to compute a running cor.test() in a data.frame with NA values in R?。然后,您可以检查具有完整行的列对之间的相关性。