首页 > 解决方案 > 将整数的df列拆分为R中的单个数字

问题描述

我有一个 df,其中一个变量是整数。我想将此列拆分为单个数字。请参阅下面的示例

Group Number
A     456
B     3
C     18

Group Number Digit1 Digit2 Digit3
A     456    4      5      6
B     3      3      NA     NA
C     18     1      8      NA

标签: rdataframetidyversestrsplit

解决方案


我们可以使用read.fwffrom base R。在“数字”列 ( ) 中查找max字符数 ( )。转换为( ) 后读取“数字”列,通过licating 1将“宽度”指定为 1,并将输出分配给数据中的新“数字”列ncharmxcharacteras.characterrepmx

mx <- max(nchar(df1$Number))
df1[paste0("Digit", seq_len(mx))] <- read.fwf(textConnection(
             as.character(df1$Number)), widths = rep(1, mx))

-输出

df1
#  Group Number Digit1 Digit2 Digit3
#1     A    456      4      5      6
#2     B      3      3     NA     NA
#3     C     18      1      8     NA

数据

df1 <- structure(list(Group = c("A", "B", "C"), Number = c(456L, 3L, 
18L)), class = "data.frame", row.names = c(NA, -3L))

推荐阅读