我想完成一些分析,我已经在一个新的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()但没有成功。
我非常感谢你的帮助。
达尔文
答案 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?。然后,您可以检查具有完整行的列对之间的相关性。