gpt4 book ai didi

r - 拆分或分隔不均匀/不相等的字符串,没有定界符

转载 作者:行者123 更新时间:2023-12-01 13:06:28 25 4
gpt4 key购买 nike

给定数据框df:

x <- c("X1", "X2", "X3", "X4", "X5")
y <- c("00L0", "0", "00012L", "0123L0", "0D0")
df <- data.frame(x, y)

如何利用 tidyr::separatey 字符串的每个字符放入单独的列(每个字符串位置一列)?

期望的输出:

x <- c("X1", "X2", "X3", "X4", "X5")
m1 <- c(0, 0, 0, 0, 0)
m2 <- c(0, NA, 0, 1, "D")
m3 <- c("L", NA, 0, 2, 0)
mN <- c(NA, NA, NA, NA, NA)
df <- data.frame(x, m1, m2, m3, mN)

mN 理论上可以达到 m100(100 列)或更高。

最佳答案

这行得通。它用空白而不是 NA 填充,但如果您愿意,可以事后更改。 (fill = 'right' 仅在字符向量上拆分时有效,而不是显式位置。)

maxchar = max(nchar(as.character(df$y)))
tidyr::separate(df, y, into = paste0("y", 1:maxchar), sep = 1:(maxchar - 1))

# x y1 y2 y3 y4 y5 y6
# 1 X1 0 0 L 0
# 2 X2 0
# 3 X3 0 0 0 1 2 L
# 4 X4 0 1 2 3 L 0
# 5 X5 0 D 0

关于r - 拆分或分隔不均匀/不相等的字符串,没有定界符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37731324/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com