簡體   English   中英

遍歷 data.frame 中的列以計算其值

[英]Iterating through columns in a data.frame to count its values

我有一個名為“ant”的 data.frame 像這樣(原始有 217 行和 22 列):

V1  V2  V3  V4  V5
No  No  No  Sí  No
No  No  No  Sí  No
Sí  No  No  Sí  No
No  No  No  No  No
No  No  No  Sí  No
No  No  No  Sí  No

我想要:

  1. 計算每列(變量)中有多少“Sí”和“No”。
  2. 存儲在像新data.frame這些信息
  3. 最后將這個新的 data.frame 繪制為條形圖。

到目前為止,我的第一步是:

for(i in 1:ncol(ant)) {
  ant %>% count(i)
  }

但我得到了一個錯誤:

Error: Must group by variables found in `.data`.
* Column `i` is not found.

我不知道如何繼續。

此外,data.frame 中存在的任何 NA 和/或空格會影響計算嗎?

感謝您的幫助,謝謝。

使用基礎 R:

> as.data.frame(rbind(apply(df, 2, function(x) sum(x == 'Sí', na.rm = T)), apply(df, 2, function(x) sum(x == 'No', na.rm = T))), row.names = c('Sí','No'))
   V1 V2 V3 V4 V5
Sí  1  0  0  5  0
No  5  6  6  1  6
> 

試試這個 - 它使用 rlang::sym

df <- data.frame()
for(i in names(ant)) {
  d <- ant %>% count(!!sym(i))
  df <- rbind(df, d)
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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