使用R/tidyverse以未定义的列数分隔数据帧的一列
我必须导入一个如下数据框所示的表:使用R/tidyverse以未定义的列数分隔数据帧的一列,r,tidyverse,tidyr,data-import,R,Tidyverse,Tidyr,Data Import,我必须导入一个如下数据框所示的表: > df = data.frame(x = c("a", "a.b","a.b.c","a.b.d", "a.d")) > df x 1 <NA> 2 a 3 a.b 4 a.b.c 5 a.b.d 6 a.d 我想根据我将找到的分隔符的数量将第一列分隔成一列或多列 输出应该是这样的 > df_separated col1 col2 col3 1 a <NA> <NA&g
> df = data.frame(x = c("a", "a.b","a.b.c","a.b.d", "a.d"))
> df
x
1 <NA>
2 a
3 a.b
4 a.b.c
5 a.b.d
6 a.d
我想根据我将找到的分隔符的数量将第一列分隔成一列或多列
输出应该是这样的
> df_separated
col1 col2 col3
1 a <NA> <NA>
2 a b <NA>
3 a b c
4 a b d
5 a d <NA>
我试图在tidyr中使用单独的函数,但我需要事先指定需要多少outoput列
非常感谢您的帮助您可以先计算它可以占用的列数,然后单独使用
您可以先计算它可以占用的列数,然后使用单独的列 librarydata.table;DT librarydata.table;DT
nmax <- max(stringr::str_count(df$x, "\\.")) + 1
tidyr::separate(df, x, paste0("col", seq_len(nmax)), sep = "\\.", fill = "right")
# col1 col2 col3
#1 a <NA> <NA>
#2 a b <NA>
#3 a b c
#4 a b d
#5 a d <NA>