我一直在尝试创建一个循环,它接受我想要使用的列名称的向量,然后对确定样本组的列进行统计测试循环。以下是它现在的样子。
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决定。 我也试过命名它们控制和实验,但我一直得到与上面相同的错误。有什么建议?
答案 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)
}