我想合并两列以完成彼此。以下是我要合并的数据示例
Movie | Rating(New) | Rating (Old) |
A ................A...................Nan
B ................B...................Nan
C ................NaN...................C
D ................NaN...................A
我想创建包含两者的新列名称
Movie | Rating(New) | Rating (Old) | Rating
A ................A...................Nan................A
B ................B...................Nan................B
C ................NaN...................C................C
D ................NaN...................A................A
我试过这段代码
df$Rating <- paste(df$Rating(New),df$Rating(Old)
但评级中的A
有两个,即&#34; A&#34;和&#34; A&#34 ;.代码在它们上面创建了一个空格。
答案 0 :(得分:0)
这是一种方式
df <- read.csv(text="
A,B,C
1,1,NaN
2,2,NaN
3,NaN,3
4,NaN,1
", colClasses = rep("numeric", 3))
df$D <- dplyr::coalesce(df$A, df$B)
df
# A B C D
# 1 1 1 NaN 1
# 2 2 2 NaN 2
# 3 3 NaN 3 3
# 4 4 NaN 1 4
答案 1 :(得分:0)
使用data.table
,您可以将一个coloumn的值输入另一个:
dt <- fread(text="
A,B,C
1,1,NaN
2,2,NaN
3,NaN,3
4,NaN,1
")
dt[is.na(B), B:=C]
在此处更新B
为NA
的行,并将B
设置为C
中的值。
答案 2 :(得分:0)
这是更简单的解决方案:
df$v3 = ifelse(df$v1 == "NaN", df$v2, df$v1)