我想将一个数据框(这是另一个数据框的子集)中的一列添加到原始数据框中。(我不得不将子集用于其他分析)。请考虑以下示例:
origdata <- data.frame(id=c(1:5), val=c("a", "b", "c", "d", "e"))
subdata <- origdata[origdata$id>3, ]
subdata$newvar <- factor(c(1, 2), levels=c(1, 2), labels=c("one", "two"))
### Value for newvar derived from other analysis
现在,我想将包含的列添加newvar
到原始数据帧,并NA
为不属于该子集的所有情况填写。我的第一个想法是使用
origdata[origdata$id>3, ]$newvar <- subdata$newvar
这显然是行不通的。不过,如果我先定义newvar
为NA
它的工作原理,但我失去了其指定为一个因子(如上)获得的所有其他信息:
origdata$newvar <- NA
origdata[origdata$id>3, ]$newvar <- subdata$newvar
您知道一个简单的解决方法吗?如果可能的话,我不想使用,merge
因为我有很大的数据帧并且merge
非常耗时。另外,我想保留newvar
为一个因素。
它应该工作
origdata$newvar<-subdata[match(origdata$id,subdata$id),"newvar"]
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句