我有两个数据框(bwenv
和bwsp
)。 bwsp
是bwenv
的子集,它们具有匹配的rownames(示例ID)。我想将bwenv
分组,以便它只包含bwsp
中也包含的行。
当行数匹配时,我使用了:
bw2015< - cbind(bwenv,bwsp)
使用组合数据创建新数据框。
我的问题与此处提出的问题非常相似:R subset a column in data frame based on another data frame/list,但子集化是由每个数据框中的一列数据完成的(而不是像我想要的那样的行名称)。
答案 0 :(得分:0)
library(dplyr)
bw2015 <- bwenv %>%
add_rownames("row_names") %>%
semi_join(add_rownames(bwsp, "row_names"), by = "row_names")
答案 1 :(得分:0)
继续@yeedle的解决方案后,我对它进行了一些修改,发现这对我有用:
library(dplyr)
bwenv2 <- bwenv %>%
rownames_to_column("row_names") %>%
semi_join(rownames_to_column(bwsp, "row_names"), by = "row_names")
rownames(bwenv2) <- bwenv2$row_names
bwenv2 <- bwenv2 %>% select(-row_names)
bw2015 <- cbind(bwenv2, bwsp)
str(bw2015)