通过字符/因子值合并两个数据集;保留较小的数据集

时间:2019-07-25 14:45:15

标签: r join merge character

我有一个数据集A,其中有一列字符值(因子),每个值出现多次。我也有一个副本集(A')被清除(减少了vars和obs)。我现在尝试做的是以仅保留较小集合A'的行(记录)的方式合并它们。

我已经尝试过右联接,但是由于我正在处理字符值,因此遇到了问题。

this.state={
     statusBtn: ['Awake', 'Asleep']
     patientInfo: [
                   {room: 1, locationInfo: '', status: ''},
                   {room: 2, locationInfo: ''},
                   {room: 3, locationInfo: ''},
                   {room: 4, locationInfo: ''},
                   {room: 5, locationInfo: ''},
                   {room: 7, locationInfo: ''}
                ],
}

我得到的是: UseMethod(“ right_join”)中的错误:   没有将'right_join'的适用方法应用于类“ c('matrix','character')”的对象

我需要什么:

Info<-c("x","x","x", "y","y","y","z","z","z")
More_info<-c("A", "A","A", "B", "B", "B", "C", "C","C")
Group_A<-cbind(Info, More_info)


vec1<-c("A","B","C")
vec2<-c("one","two","three")
Group_B<-cbind(vec1, vec2)
names(Group_B)<-c("More_Info", "Extra_Info")
x<-right_join(Group_A, Group_B, by= "More_Info")

1 个答案:

答案 0 :(得分:1)

您可以使用merge

Info <- c("x","x","x", "y","y","y","z","z","z")
More_info <- c("A", "A","A", "B", "B", "B", "C", "C","C")
Group_A <- cbind(Info, More_info)

vec1 <- c("A","B","C")
vec2 <- c("one","two","three")
Group_B <- cbind(vec1, vec2)

# Use colnames to change column names, not names
# Also the 'i' in 'More_Info' should be lower case
colnames(Group_B) <- c("More_info", "Extra_Info")

# Take the unique values of A
merge(unique(Group_A), Group_B, by = "More_info", all.x = F, all.y = T)
#>   More_info Info Extra_Info
#> 1         A    x        one
#> 2         B    y        two
#> 3         C    z      three