簡體   English   中英

R迭代列數據幀

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM