使用for循环进行R中数据框列的统计

时间:2016-06-02 01:58:49

标签: r for-loop statistics

我一直在尝试创建一个循环,它接受我想要使用的列名称的向量,然后对确定样本组的列进行统计测试循环。以下是它现在的样子。

sink('df_statistics.txt')

df <- `df.tsv`

columns <- c("column1" , "column2" , "column3" , "column4")

for (x in columns) {
    wilcox.test(formula = x ~ Group, data = df)
}

sink()

当我运行它时,我收到此错误:

  

model.frame.default中的错误(formula = data~Group,data = df):
  变量长度不同(找到&#39; Group&#39;)

我的小组由数字1和2决定。 我也试过命名它们控制和实验,但我一直得到与上面相同的错误。有什么建议?

2 个答案:

答案 0 :(得分:1)

我们可以使用lapply

lapply(df[columns], function(x) wilcox.test(x~df$Group))

数据

columns <- c("column1" , "column2")
set.seed(24)
df <- data.frame(Group = rep(1:2, each=5), column1 = rnorm(10), column2 = rnorm(10))

答案 1 :(得分:0)

您无法使用原始表示法以编程方式访问列。使用[[]]表示法选择带变量的所需列 尝试:

columns <- c("column1" , "column2" , "column3" , "column4")

for (x in columns) {
    wilcox.test(formula = df[[x]] ~ df$Group)
}