首页 > 解决方案 > 将 0 添加到字符列

问题描述

我有一个数据框,其中有一列字符值:

df1
Col1     Col2    
   A        1
   B        2
   C       11
   D      101
   E     1000

我有另一个数据集,它也包含字符值,但每个值都有 5 个数字,即使它是一个小数字,如下所示:

df2
Col1A     Col2    
   F     00001
   G     00002
   H     00011
   I     00101
   J     01000

如何将 0 添加到 df1 以便我可以将两个数据框连接在一起?

预期输出:

df1
Col1      Col2     Col1A
   A     00001         F
   B     00002         G
   C     00011         H
   D     00101         I
   E     01000         J

标签: r

解决方案


数据:

read.table(text="Col1     Col2    
A        1
B        2
C       11
D      101
E     1000", colClasses=c("character", "character"), header=TRUE) -> xdf1

read.table(text="Col1A     Col2    
F     00001
G     00002
H     00011
I     00101
J     01000", colClasses=c("character", "character"), header=TRUE) -> xdf2

0 依赖基础 R:

setNames(merge(
  { xdf1$Col3 <- sprintf("%05s", xdf1$Col2) ; xdf1 },
  xdf2, by.x = "Col3", by.y = "Col2"
)[,c(2,1,4)], c("Col1", "Col2", "Col1A"))
##    Col1  Col2 Col1A
## 1    A 00001     F
## 2    B 00002     G
## 3    C 00011     H
## 4    D 00101     I
## 5    E 01000     J

xdf1$Col3 <- NULL # to preserve the original data frame

推荐阅读