首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当DT1.x和DT2.x在R中匹配时,用DT2.y代替DT1.x

当DT1.x和DT2.x在R中匹配时,用DT2.y代替DT1.x
EN

Stack Overflow用户
提问于 2017-03-03 19:44:29
回答 1查看 263关注 0票数 1

我想用R中的数据表来完成这个任务。

所以我从这个开始

代码语言:javascript
运行
复制
     dtMain
           Name      state
    1: CompanyC         CA
    2: CompanyM         MN
    3: CompanyC1 California
    4: CompanyT         TX

     statesFile
       stateExpan state
    1:      Texas    TX
    2:  Minnesota    MN
    3: California    CA

dtMain$State == statesFile$state中,我想用statesFile$stateExpan替换dtMain$State并得到以下内容

代码语言:javascript
运行
复制
      dtMain
           Name      state
    1: CompanyA California
    2: CompanyB  Minnesota
    3: CompanyC California
    4: CompanyD      Texas

下面是创建这两个文件的代码

代码语言:javascript
运行
复制
library(data.table)
dtMain <- data.table(Name  = c("CompanyA"  ,"CompanyB","CompanyC","CompanyD"),
                 state = c("CA","MN","California","TX"))
statesFile <- data.table( stateExpan = c("Texas","Minnesota","California"),
                          state = c("TX","MN","CA"))

我的问题是这个R finding rows of a data frame where certain columns match those of another的下一个级别,我正在寻找数据表解决方案。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-03 19:57:30

使用update联接:

代码语言:javascript
运行
复制
dtMain[statesFile, on=.(state), state := i.stateExpan ]

i.*前缀表示它来自x[i, on=, j]中的i表。这里是可选的。

详情请参见?data.table

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42587214

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档