gpt4 book ai didi

rbind 数据框,重复行名问题

转载 作者:行者123 更新时间:2023-12-04 12:12:01 26 4
gpt4 key购买 nike

虽然 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) 为匹配找到数字或逻辑值。

关于rbind 数据框,重复行名问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13038401/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com