数据帧列上循环中的R错误Wilcoxon测试:不够(有限)和#x27;x';观察
我有一个15 x 555的数据框,行的样本数与列的蛋白质名称相对。此数据框的最后3列包含映射信息,即治疗、治疗时间和月份,并标记为这样 在数据帧列上循环时,我希望使用wilcoxon.test执行wilcoxon测试,并根据映射信息直接从df获取信息 粗略示例:数据帧列上循环中的R错误Wilcoxon测试:不够(有限)和#x27;x';观察,r,dataframe,statistics,R,Dataframe,Statistics,我有一个15 x 555的数据框,行的样本数与列的蛋白质名称相对。此数据框的最后3列包含映射信息,即治疗、治疗时间和月份,并标记为这样 在数据帧列上循环时,我希望使用wilcoxon.test执行wilcoxon测试,并根据映射信息直接从df获取信息 粗略示例: pre_post <- vector() for(i in names(df[,1:552])){ pre_post <- append(pre_post, wilcox.test(df[df$Treatment
pre_post <- vector()
for(i in names(df[,1:552])){
pre_post <- append(pre_post, wilcox.test(df[df$Treatment_Time %in% "Pre", i], df[df$Treatment_Time %in% "Post", i], na.action(na.omit))$p.value))}
pre\u post考虑tryCatch
在具有零行的过滤器上返回NA,从而导致wilcox.test的错误。下面使用sapply
返回向量中的p值
p_value_vector <- sapply(names(df[,1:552]), function(i)
tryCatch(
wilcox.test(df[df$Treatment_Time %in% "Pre", i],
df[df$Treatment_Time %in% "Post", i],
na.action(na.omit))$p.value),
warning = function(w) return(NA),
error = function (e) return(NA)
)
)
p_值_向量在寻求帮助时,您应该包括一个简单的示例输入和所需输出,可用于测试和验证可能的解决方案。如果这些值不存在,您希望发生什么?您的代码不会产生任何结果,因为对print()
的隐式调用不会在循环中发生。您需要显式使用print()
函数或将值添加到向量中以保留结果。查看(1:5中的i)1+i的与(1:5中的i)打印(1+i)的之间的差异。如果使用wilcox.test()的公式方法,代码也会更简单。
。阅读手册页面:?控制
和?wilcox.test
。
p_value_vector <- sapply(names(df[,1:552]), function(i)
tryCatch(
wilcox.test(df[df$Treatment_Time %in% "Pre", i],
df[df$Treatment_Time %in% "Post", i],
na.action(na.omit))$p.value),
warning = function(w) return(NA),
error = function (e) return(NA)
)
)