我有一個資料集,我想在其中按 ID 變數分組,然后計算每列/變數的總和。但是,如您所見,我有一些 NA,我想在執行 sum 函式時洗掉它們,因為它們在某些行中回傳 NA,盡管相同 ID 的某些行包含值。我試圖環顧四周,但沒有成功,我又嘗試了不同的方法,但沒有成功。我將不勝感激任何幫助。
先感謝您。
data <- data.frame(ID = c(1, 1, 2, 2, 3, 3, 3, 4, 4, 4),
var1 = c(1, 2, 5, 10, NA, 5, 23, NA, NA, 1),
var2 = c(1, NA, NA, 1, NA, 0, 1, 3, 23, 4))
data <- data %>%
group_by(ID) %>%
summarise(across(everything(), sum(., na.rm = T)))
uj5u.com熱心網友回復:
只是~缺少波浪號:
data %>%
group_by(ID) %>%
summarise(across(everything(), ~sum(., na.rm = T)))
# A tibble: 4 x 3
ID var1 var2
* <dbl> <dbl> <dbl>
1 1 3 1
2 2 15 1
3 3 28 1
4 4 1 30
如果一ID組只有NA值,您可以這樣做:
data %>%
group_by(ID) %>%
summarise(across(everything(), ~ifelse(all(is.na(.)), NA, sum(., na.rm = T))))
uj5u.com熱心網友回復:
我們可以在不使用 lambda 函式的情況下指定函式的引數
library(dplyr)
data %>%
group_by(ID) %>%
summarise(across(everything(), sum, na.rm = TRUE), .groups = 'drop')
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/336900.html
