我有3个单独的列,每行只有一个列中的数据,类似于下面的.
| Country | Country 2 | Country 3 |
| ------- | --------- | --------- |
| UK | | |
| | France | |
| | | Germany |
| Italy | | |
| USA | | |
| | France | |
| | | Germany |
我想创建一个列合并这些一起如下.
| Final Country |
| ------------- |
| UK |
| France |
| Germany |
| Italy |
| USA |
| France |
| Germany |
我试过使用合并和粘贴,这似乎是工作的2列,但不是3。
注意:这不是整个表,所以我希望能够选择其中的3列
5条答案
按热度按时间9cbw7uwe1#
在这种情况下,一个简单的替代方法使用基R将只是使用
max
跨行应用(“窃取”Seth的数据-谢谢@Seth!):如果你只想在某些列上应用它,你可以指定列,但你想,即:
如果你想在一个单独的 Dataframe :
注意,如果您有
NA
值而不是真正的空格,请添加na.rm = TRUE
:转载@Seth的数据给后代:
jc3wubiy2#
您可以使用
tidyr::unite()
粘贴多个列,按名称提供一组指定的列,或使用tidy-select
函数,如本例所示:数据
inkz8wg93#
另一个R基替代方案:
另一个使用
coalesce
的解决方案是:我也从@Seth获取了数据。
ej83mcc04#
data.table版本:
lmyy7pcs5#
一种可能性是转置数据并将那些不是
''
的数据子集化。或者使用
max.col
。或者在
do.call
中使用paste0
。或者在
do.call
中使用pmax
。数据
基准