虽然在一个文件中允许重复的行(和列)名称matrix
,他们不允许在data.frame
。尝试去rbind()
一些具有共同行名称的数据框突出了这个问题。考虑下面的两个数据框:
foo = data.frame(a=1:3, b=5:7)
rownames(foo)=c("w","x","y")
bar = data.frame(a=c(2,4), b=c(6,8))
rownames(bar)=c("x","z")
# foo bar
# a b a b
# w 1 5 x 2 6
# x 2 6 y 4 8
# y 3 7
现在正在努力rbind()
它们(注意行名称):
rbind(foo, bar)
# a b
# w 1 5
# x 2 6
# y 3 7
# x1 2 6
# z 4 8
但对于以下情况matrix
:
rbind(as.matrix(foo), as.matrix(bar))
# a b
# w 1 5
# x 2 6
# y 3 7
# x 2 6
# z 4 8
问题来了:如何rbind()
两个数据框,删除了重复的行(具有相同的行名称)?
怎么样
duprows <- which(!is.na(match(rownames(bar),rownames(foo))))
rbind(foo,bar[-duprows,])
?
或者(基于下面的评论)
duprows <- rownames(bar) %in% rownames(foo)
rbind(foo, bar[!duprows,])
根据 (1) 选择匹配或不匹配,可能有多种变化; (2) 查找匹配的数字或逻辑值。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)