[英]R iterate over columns dataframe
我想以迭代方式將統計信息應用於數據框的列:
第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)
生成的列名中刪除引號。
不幸的是它給了我錯誤:
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
}
請注意,即使您的代碼沒有出現錯誤,您仍然會在每次循環時覆蓋“p”。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.