【发布时间】:2012-11-29 06:19:50
【问题描述】:
对于 R 中的这种操作,合并的正确用途是什么?见下文。
older <- data.frame(Member=c("first","second","third","fourth"),
VAL=c(NA,NA,NA,NA))
newer <- data.frame(Member=c("third","first"),
VAL=c(2125,4587))
#
merge.data.frame(older,newer,all=T)
Member VAL
1 first 4587
2 first NA
3 fourth NA
4 second NA
5 third 2125
6 third NA
上面的内容并不完全符合我的预期,我想用新条目替换旧条目,而不是添加另一行。如下所示。我在 merge.data.frame 上失败了。
my.merge.fu(older,newer)
Member VAL
1 first 4587
2 second NA
3 third 2125
4 fourth NA
一种选择性行替换,其中较新的成员优先,并且不能包含除较旧成员之外的其他成员。
这种 R 操作是否有适当的英文术语,是否有预建函数?
谢谢。
【问题讨论】:
-
如果您使用
by='Member'和all=TRUE,您将获得一个具有您正在寻找的结构的新列。但我很想知道您是否可以使用merge并仅返回该列。 -
以前在SO 上发布过两个可能的解决方案,也有类似的问题
-
@Petr
newer可以包含fifth条目吗? -
@Matthew 感谢您的提问,除了较旧的成员之外,没有新成员不能包含其他成员。我进行了编辑以添加这个重要的细节。
-
@Justin 看起来你的提示对我来说效果很好,至少小的包装函数可以完成这项工作。非常感谢您的建议。
标签: r