我知道这是一个非常简单的问题,但我对R来说仍然很新。
如果我有两个这样的表
id = c(1,2,3,4,5,6)
cost = c(11,22,33,44,55,66)
name =c("aa","bb","cc","dd","ee","ff")
tableone = cbind (id, cost)
tabletwo = cbind(name,id)
如何在tableone中添加正确的名称(如在tabletwo中)?实际上,table1更复杂,有多个重复等。
答案 0 :(得分:1)
这是使用data.table包的方法:
加载包裹:
library(data.table)
按照定义的载荷加载载体:
id <- c(1,2,3,4,5,6)
cost <- c(11,22,33,44,55,66)
name <- c("aa","bb","cc","dd","ee","ff")
将矢量转换为单列数据表:
id.dt<-data.table(id)
setnames(id.dt,"id")
cost.dt<-data.table(cost)
setnames(cost.dt,"cost")
name.dt<-data.table(name)
setnames(name.dt,"name")
组合列,设置一个键(这个例子可能不需要这个,但我只是为了显示它而包含它:
tableone.dt<-cbind(id.dt,cost.dt)
setkey(tableone.dt,id)
tabletwo.dt<-cbind(name.dt,id.dt)
setkey(tabletwo.dt,id)
合并表:
merge(tableone.dt,tabletwo.dt)
当然,这是一种全面的方式。如果它符合您的需求,您可以轻松简化该过程。例如:
simple.table <- data.table("id"=c(1,2,3,4,5,6),"cost"=c(11,22,33,44,55,66),"name"=name <- c("aa","bb","cc","dd","ee","ff"))
或托马斯的评论将起作用。另外,请参阅flodel评论的链接。