使用列名迭代

时间:2016-11-03 09:23:09

标签: r

我的数据框是result

它的格式如,

org_A      X       Y          Z
 130      44       55        66
 312      33       62        77
 ..       ..       ..        ..

我想用wilcox.test来比较org_A和X,org_A和Y,然后是org_A和Z,然后打印它的p值。

所以结果看起来像

X: 0.001932
Y: 0.18271
Z: 0.001231

为此,我实施了这样的,

for (i in 1:ncol(result)){
colnm <- colnames(result)[i]
wilcox.test(result$org_A, result$colnm, alternative=c("two.sided"), paired=FALSE)$p.value

}

但它会发出消息Unknown column 'colnm'

更糟糕的是,它会输出一些东西,但p值是相同的。

我该怎么办?

1 个答案:

答案 0 :(得分:0)

这个怎么样?

sapply(result[, -1], FUN = function(x, result) {
  wilcox.test(result$org_A, 
              x, 
              alternative = c("two.sided"),
              paired = FALSE)$p.value
}, result = result)

修改

这是另一种使用TryParse的方式。

Parse