【发布时间】:2020-03-10 20:25:00
【问题描述】:
我正在尝试将多列合并到每一行的单个单元格中,然后删除缺失值。
样本数据:
df <- data.frame(a=c("a", "b", "c", "d"),
b=c(NA, "a", "b", "c"),
c=c("a", "b", "e", "g"))
尝试:
df %>% rowwise() %>%
mutate(collapse=as.character(paste(a,b,c, collapse=",")),
collapse_nona=na.omit(collapse))
输出:
# A tibble: 4 x 5
a b c collapse collapse_nona
* <fct> <fct> <fct> <chr> <chr>
1 a NA a a NA a,b a b,c b e,d c… a NA a,b a b,c b e,d …
2 b a b a NA a,b a b,c b e,d c… a NA a,b a b,c b e,d …
3 c b e a NA a,b a b,c b e,d c… a NA a,b a b,c b e,d …
4 d c g a NA a,b a b,c b e,d c… a NA a,b a b,c b e,d …
1) 我没有成功地为每一行创建具有值的单元格(整列出现在折叠中)。
2) 折叠列中的单元格的行为不像向量。
期望的输出
a b c collapse collapse_nona
* <fct> <fct> <fct> <chr> <chr>
1 a NA a a NA a a a
2 b a b b a b b a b
3 c b e c b e c b e
4 d c g d c g d c g
谢谢
【问题讨论】:
-
试试
unitedf %>% mutate_all(as.character) %>% unite(collapse, a, b,c, na.rm = TRUE, remove = FALSE, sep=" ")