我想以迭代方式将统计信息应用于数据框的列:
第1列:'A'代表我想要区分的标签:
for (i in names(dataframe)) {
i <- as.name(i)
group1 <- i[A=="locationX"]
group2 <- i[A!="locationX"]
p <- wilcox.test(group1,group2,na.action(na.omit))$p.value
}
Run Code Online (Sandbox Code Playgroud)
然而,as.name()是尝试从生成的列名中删除引号names(dataframe).
不幸的是它给了我错误:
i [A =="locationX"]中的错误:"符号"类型的对象不是可子集化的
我认为as.name()这不是正确的方法.
有线索吗?
这是有意义的,如果为"A"的唯一方法是用"locationX"的多个实例的矢量和逆的多个实例和为"A"的长度是相同的行中的"数据帧"的数量.如果是这种情况,那么这样的事情可能有效:
p <- list()
for (i in names(dataframe)) {
# using as.names not needed and possibly harmful
group1 <- dataframe[[i]][A == "locationX"]
group2 <- dataframe[[i]][A != "locationX"]
p[i] <- wilcox.test(group1,group2,na.action(na.omit))$p.value
}
Run Code Online (Sandbox Code Playgroud)
请注意,即使您的代码没有出现错误,您仍然会在每次循环时覆盖"p".
| 归档时间: |
|
| 查看次数: |
29403 次 |
| 最近记录: |