【发布时间】:2018-08-30 13:58:21
【问题描述】:
我使用which()按物种对数据框进行子集化:
sp1 <- data[which(data$species=='sp1'),]
这个子数据框 (sp1) 中有 4 个站点的数据,我想从其中两个站点中提取数据并将它们组合成一个新的数据框。
我再次使用which() 对它们进行子集化:
site.1 <- data.frame(sp1[which(sp1$site=='site1'),])
site.2 <- data.frame(sp1[which(sp1$site=='site2'),])
但是,当我使用merge() 将它们组合成一个新的数据框时:
site.1.2 <- merge(site.1,site.2, by = "site")
R 生成一个空数据帧(带有正确的标头)。
我的问题是:
1) 为什么merge() 不将来自site.1 和site.2 的数据放入这个新数据框中?
2) 我可以简单地将来自站点 1 和站点 2 的数据从原始数据帧中提取出来吗?如果是这样,怎么做?我尝试将which() 与 OR 语句一起使用:
site.1.2 <- data.frame(data[which(data$site=='site1'),] | data[which(data$site=='site1'),])
但这并不成功。
【问题讨论】: