簡體   English   中英

R 統計dataframe的每一列中特定值出現的次數

[英]R count the number of occurrences of a specific value within each column of dataframe

這似乎是一個非常基本的問題,但我找不到一個解決方案來滿足我對 dataframe 的所有列的要求。

我有一個 dataframe:

df = data.frame(cats = c("A", "B", "C", NA, NA), dogs = c(-99, "F", NA, -99, "H"))

我想計算每列中出現 NA 的次數。 我還想計算每列中出現 -99 的次數。 我可以使用 summarise_all 來計算每列的 NA 數量。

df %>% summarise_all(~ sum(is.na(.)))

這會產生所需的結果:

  cats dogs
  2    1

但我不知道如何調整它來計算每列出現 -99 的次數。 我試過以下方法:

df %>% summarise_all(~ sum(-99))

產生這個結果:

  cats dogs
  -99  -99

此結果為每一列顯示 -99,即使它從未在貓中出現,也不會產生 -99 出現的次數。 必須有一個簡單的方法來做到這一點? 謝謝你的幫助!

你幾乎到了那里,你需要在sum中使用na.rm = TRUE

> df %>% summarise_all(~ sum(.== -99, na.rm = TRUE))
  cats dogs
1    0    2

使用base R

colSums(df == -99, na.rm = TRUE)
cats dogs 
   0    2 

暫無
暫無

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

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