将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

回答

我们可以使用read.fwfbase R. 在“数字”列 ( ) 中查找max字符 ( nchar) 的数量mx。转换为character( as.character)后读取“数字”列,通过rep将 1 与 1 连接mx并将输出分配给数据中的新“数字”列,将“宽度”指定为 1

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))


以上是将df整数列拆分为R中的单个数字的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>