[英]How can I collapse columns of a dataframe if there are NAs?
我想刪除以下數據框中的 NA,以便留下 3 列而不是 4 列。列的名稱無關緊要。
structure(list(Practical1 = c("65", "85", NA, "60", NA), Practical2 = c("55",
"75", "100", NA, "35"), Practical3 = c(45.45, 50, 86.36, 40,
72.73), Practical4 = c(NA, NA, "92", "79", "71")), class = "data.frame", row.names = c(NA,
-5L))
我會得到看起來像這樣的東西:
pracA, pracB, pracC
65, 55, 45.45,
85, 75, 50,
100, 86.36, 92,
60, 40, 79,
35, 72.73, 71
在基數 R 中,使用na.omit
:
dat <- as.data.frame(t(apply(dat, 1, na.omit)))
colnames(dat) <- paste0("prac", 1:3)
output
prac1 prac2 prac3
1 65 55 45.45
2 85 75 50.00
3 100 86.36 92
4 60 40.00 79
5 35 72.73 71
在帶有unite
+ separate
的tidyr
中:
library(tidyr)
unite(dat, "a", starts_with("Practical"), na.rm = TRUE) %>%
separate(a, into = str_c("prac", 1:3), sep = "_")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.