我有一个数据集,其中单元格被不同长度的字符串或 NA 占据
我需要生成包含所有字符串的一列(例如由一列组成的数据框)。基本上堆叠所有有效的字符串答案,在此过程中过滤掉 NA。
df.input <- data.frame(col1 = c("green potatoes","read avocados","white pepper","wise master"),
col2 = c("white seagull","black tank","creative pigeon","crazy socks"),
col3 = c("constant turmoil","ready fan",NA,"interesting collapse"),
col4 = c("awesome lettuce","jiggedy cabbage",NA,NA),
col5 = c("green potatoes","read avocados",NA,NA),
col6 = c("green potatoes",NA,NA,NA),
col7 = c(NA,NA,NA,NA)
)
输出的 df 应该是这样的:
df.output <- data.frame(colOnlyOne = c("green potatoes","read avocados","white pepper","wise master",
"white seagull","black tank","creative pigeon","crazy socks",
"constant turmoil","ready fan","interesting collapse",
"awesome lettuce","jiggedy cabbage",
"and so on for all non-NA string values...")
)
我如何实现这一目标?最好使用 tidyverse 系列函数。
非常感谢
> data.frame(colOnlyOne = na.omit(unlist(df.input, use.names = FALSE)))
colOnlyOne
1 green potatoes
2 read avocados
3 white pepper
4 wise master
5 white seagull
6 black tank
7 creative pigeon
8 crazy socks
9 constant turmoil
10 ready fan
11 interesting collapse
12 awesome lettuce
13 jiggedy cabbage
14 green potatoes
15 read avocados
16 green potatoes