如何将数据框中的所有字符串折叠到单个列中? [重复]

问题描述 投票:0回答:1

我有一个数据集,其中单元格被不同长度的字符串或 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 系列函数。

非常感谢

r string tidyverse
1个回答
0
投票
> 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
© www.soinside.com 2019 - 2024. All rights reserved.