用另一个数据集R中的值替换一个数据集中的值

时间:2016-01-28 21:31:59

标签: r

我有一个看似简单的问题,我很难过。我有一个df,说:

x y z
0 1 2
3 5 4
1 0 5
0 5 0

和另一个:

x y z
1 5 6
2 4 5
4 5 7
5 8 5

我想用df2中的值替换df1中的零值。例如,df1的单元格1将是1而不是零。我想要这个数据帧中的所有列。你能帮我代码吗?我似乎无法弄明白。谢谢!

1 个答案:

答案 0 :(得分:1)

首先,您可以使用which

找到0的索引
zero_locations <- which(df1 == 0, arr.ind=TRUE)

然后,您可以使用这些位置进行替换:

df1[zero_locations] <- df2[zero_locations]

David Arenburg在评论中指出,which并非绝对必要:

zero_locations <- df1 == 0

也可以。