如何使用 purrr str_split 文本到几列
How to str_split text to few column using purrr
我有数据框,我想将列拆分为 3 个:
df<-data.frame(x=1:5,y=paste0("num-",1:5,"-ber"))
df
x y
1 1 num-1-ber
2 2 num-2-ber
3 3 num-3-ber
4 4 num-4-ber
5 5 num-5-ber
结果一定是这样的:
x y1 y2 y3
1 1 num 1 ber
2 2 num 2 ber
3 3 num 3 ber
4 4 num 4 ber
5 5 num 5 ber
我正在尝试这样的变体:
df%>%
purrr::map_chr(stringr::str_split(y,pattern="-"))
但没有任何积极的结果
谢谢!
我们可以使用 tidyr
中的 separate
,如果未指定 sep
,它会自动选择分隔符。在这种情况下,它是 -
library(dplyr)
library(tidyr)
df %>%
separate(y, into= paste0('y', 1:3))
# x y1 y2 y3
#1 1 num 1 ber
#2 2 num 2 ber
#3 3 num 3 ber
#4 4 num 4 ber
#5 5 num 5 ber
或者 base R
选项将使用 read.table
读取,指定 sep
为 -
和 cbind
与 'x' 列
cbind(df['x'], read.table(text=as.character(df$y), sep="-", col.names = paste0("y", 1:3)))
我有数据框,我想将列拆分为 3 个:
df<-data.frame(x=1:5,y=paste0("num-",1:5,"-ber"))
df
x y
1 1 num-1-ber
2 2 num-2-ber
3 3 num-3-ber
4 4 num-4-ber
5 5 num-5-ber
结果一定是这样的:
x y1 y2 y3
1 1 num 1 ber
2 2 num 2 ber
3 3 num 3 ber
4 4 num 4 ber
5 5 num 5 ber
我正在尝试这样的变体:
df%>%
purrr::map_chr(stringr::str_split(y,pattern="-"))
但没有任何积极的结果
谢谢!
我们可以使用 tidyr
中的 separate
,如果未指定 sep
,它会自动选择分隔符。在这种情况下,它是 -
library(dplyr)
library(tidyr)
df %>%
separate(y, into= paste0('y', 1:3))
# x y1 y2 y3
#1 1 num 1 ber
#2 2 num 2 ber
#3 3 num 3 ber
#4 4 num 4 ber
#5 5 num 5 ber
或者 base R
选项将使用 read.table
读取,指定 sep
为 -
和 cbind
与 'x' 列
cbind(df['x'], read.table(text=as.character(df$y), sep="-", col.names = paste0("y", 1:3)))