更新时间:2022-12-28 16:10:30
你实际上很接近。您需要将分隔符位置指定为 sep = c(2,4)
而不是 sep = c(2,2)
You were actually quite close. You need to specify the separator-positions as sep = c(2,4)
instead of sep = c(2,2)
:
df <- separate(df, a, c(paste0("V",LETTERS[1:3])),sep = c(2,4))
你得到:
> df
VA VB VC
1 Aa Bb CC
2 AA BB CC
3 AA bb CC
在基础R中,您可以(从@ rawr的评论借用):
In base R you could do (borrowing from @rawr's comment):
l <- ave(as.character(df$a), FUN = function(x) strsplit(x, '(?<=..)', perl = TRUE))
df <- data.frame(do.call('rbind', l))
其中:
> df
X1 X2 X3
1 Aa Bb CC
2 AA BB CC
3 AA bb CC