gpt4 book ai didi

R 迭代列数据框

转载 作者:行者123 更新时间:2023-12-04 14:17:23 25 4
gpt4 key购买 nike

我想以迭代方式将统计信息应用于数据框的列:

第 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
}

然而, as.name()就是尝试去掉 names(dataframe)生成的列名中的引号。 .

不幸的是,它给了我错误:

Error in i[A == "locationX"] : object of type 'symbol' is not subsettable



我想 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
}

请注意,即使您的代码没有出现错误,每次循环时您仍然会覆盖“p”。

关于R 迭代列数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8903424/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com