【问题标题】:R: extract the last two numbers in a variableR:提取变量中的最后两个数字
【发布时间】:2020-10-13 21:25:56
【问题描述】:

我有两个数据集(data1 和 data2)。 Data1 有(其中之一)名为:B23333391 的列 Data2 有一个名为 id_number 的列,其中列出了 id 编号(例如 344444491

我需要从data1中的变量中提取最后两位数字(91),并将其与id_number列中data2中id号的最后两位数字合并 由于最后两位数字代表个人。

例如:

数据1: 列:-> B23333391.....等等

数据2: 列:-> id_number

               344444491
               and so on....

如何做到这一点?

提前致谢!

【问题讨论】:

  • 嗨,欢迎来到 SO。请更新您的问题并提供包含相关代码部分的 MRE(stackoverflow.com/help/minimal-reproducible-example)。

标签: r merge extract


【解决方案1】:

试试这个方法。您可以使用dplyr 管道在两个数据帧中使用substr() 格式化一个id 变量。可以使用nchar() 提取最后两位数字。之后,您可以使用left_join() 进行合并。这里的代码与您分享的模拟数据相似:

library(dplyr)
#Data
df1 <- data.frame(Var1=c('B23333391'),Val1=1,stringsAsFactors = F)
df2 <- data.frame(Varid=c('344444491'),Val2=1,stringsAsFactors = F) 
#Merge
dfnew <- df1 %>% 
  mutate(id=substr(Var1,nchar(Var1)-1,nchar(Var1))) %>%
  left_join(df2 %>% mutate(id=substr(Varid,nchar(Varid)-1,nchar(Varid))))

输出:

       Var1 Val1 id     Varid Val2
1 B23333391    1 91 344444491    1

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-11-23
    • 1970-01-01
    • 1970-01-01
    • 2011-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多