我有一个数据框,看起来像这样。
name = c("p1","p2","p3","p4")
place = c("f","g","h","i")
v1 = c("x", "NA", "NA", "NA")
v2 = c("NA", "y", "y", "NA")
v3 = c("NA", "NA", "z", "NA")
region = c("n","w","s","e")
grade = c("f1","f2","f3","f4")
df = data.frame(name, place, v1, v2, v3, region, grade)
name place v1 v2 v3 region grade
1 p1 f x NA NA n f1
2 p2 g NA y NA w f2
3 p3 h NA y z s f3
4 p4 i NA NA NA e f4
我想添加一个新的字符向量v4,它包含来自任何列v1 v2 v3的字符。
name place v1 v2 v3 v4 region grade
1 p1 f x NA NA x n f1
2 p2 g NA y NA y w f2
3 p3 h NA y z yz s f3
4 p4 i NA NA NA NA e f4
非常感谢
2条答案
按热度按时间mfuanj7w1#
我们可以在将列转换为
character
后使用paste
数据
0x6upsns2#
dplyr替代方案:
如果NA/“NA”是NA(非值)或“NA”(字符),这应该是有效的。如果你不关心v4是否包含“”或NA,你可以省略最后一行(并删除最后一个管道)。