链接ID与名称

时间:2013-05-08 13:05:15

标签: r function

我知道这是一个非常简单的问题,但我对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更复杂,有多个重复等。

1 个答案:

答案 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评论的链接。