【发布时间】:2017-02-15 17:14:53
【问题描述】:
我对 R 一无所知,我有一个包含 2 列的 data.frame,它们都是关于动物的性别,但其中一个有一些更正,另一个没有。
我想要的 data.frame 是这样的:
id sex father mother birth.date farm
0 1 john ray 05/06/94 1
1 1 doug ana 18/02/93 NA
2 2 bryan kim 21/03/00 3
但我通过在其他 2 个 data.frames 上使用合并得到了这个 data.frame
id sex.x father mother birth.date sex.y farm
0 2 john ray 05/06/94 1 1
1 1 doug ana 18/02/93 NA NA
2 2 bryan kim 21/03/00 2 3
data.frame 1 或 Animals(某些动物的性别错误)
id sex father mother birth.date
0 2 john ray 05/06/94
1 1 doug ana 18/02/93
2 2 bryan kim 21/03/00
data.frame 2 或 Farm(具有正确的性别):
id farm sex
0 1 1
2 3 2
我使用的代码是:Animals_Farm <- merge(Animals , Farm, by="id", all.x=TRUE)
我需要将 2 个性别列合并为一个,优先考虑 sex.y。我该怎么做?
【问题讨论】:
-
欢迎来到 R。检查这个高度标记的 Q。stackoverflow.com/questions/5963269/…。然后尝试提供输入数据的详细信息,您想要的输出是什么。
-
这对于来自 dplyr 包的
coalesce来说是一项很好的任务。 -
sex <- ifelse(!is.na(sex.y), sex.y, sex.x) -
我如何使用这种性别
-
所以你需要这个
merge(df, df1[,-3], by="id", all.x=TRUE)?
标签: r merge multiple-columns