R 按每个字符将字符串分隔为列
在我的数据帧中,我有一个长字符串的列,如下所示R 按每个字符将字符串分隔为列,r,string,R,String,在我的数据帧中,我有一个长字符串的列,如下所示 df$string AVDSFBKLDF 我需要的是分离每个字符并为其创建新列。列的名称是q1、q2等。对于类似的情况,如按符号拆分字符串并将其放入新列中,我使用了以下代码 df %>% separate(string, into = paste0('q', 1:10), sep = "") 它工作得很好,但现在当我想按每个字符分割字符串时,我得到一些空白警告,我的控制台和代码不起作用。使用下面的代码。我使用了stringr包str_s
df$string
AVDSFBKLDF
我需要的是分离每个字符并为其创建新列。列的名称是q1、q2等。对于类似的情况,如按符号拆分字符串并将其放入新列中,我使用了以下代码
df %>% separate(string, into = paste0('q', 1:10), sep = "")
它工作得很好,但现在当我想按每个字符分割字符串时,我得到一些空白警告,我的控制台和代码不起作用。使用下面的代码。我使用了stringr包str_split_fixed函数来创建新列
a<- c("AVDSFBKLDF")
library(stringr)
d<- data.frame(str_split_fixed(a, "", max(nchar(a))))
a您可以尝试:
df<- data.frame(string=c("ABCDEF","GH"))
df %>% mutate(v=str_split(string,"(?=.)")) %>% unnest %>%
filter(v!="") %>%
group_by(string) %>% mutate(k=paste0("q",row_number())) %>% ungroup %>%
spread(k,v)
## A tibble: 2 x 7
# string q1 q2 q3 q4 q5 q6
# <fct> <chr> <chr> <chr> <chr> <chr> <chr>
#1 ABCDEF A B C D E F
#2 GH G H <NA> <NA> <NA> <NA>
df%变异(v=str_split(string,(?=)))%%>%unnest%%
过滤器(v!=“”)%>%
分组依据(字符串)%>%mutate(k=paste0(“q”,row\u number()))%>%ungroup%>%
扩散(k,v)
##一个tibble:2x7
#字符串q1 q2 q3 q4 q5 q6
#
#1 ABCDEF A B C D E F
#2生长激素
<代码> >数据>表>代码>包提供了您可以考虑的函数<代码> TSTRISPLAG/<代码>。< /P>
a<- c("AVDSFBKLDF", "GH", "ABCD")
library(data.table)
DT <- data.table(a)
DT_wide <- DT[, tstrsplit(a, "")]
# change column names
setnames(DT_wide, paste0("q", seq_len(ncol(DT_wide))))
DT_wide
# q1 q2 q3 q4 q5 q6 q7 q8 q9 q10
#1: A V D S F B K L D F
#2: G H <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA>
#3: A B C D <NA> <NA> <NA> <NA> <NA> <NA>
aHiho@Sklenicka。我想多了解一些信息会有帮助。警告是怎么说的。如果运行代码会发生什么。$string中的所有条目是否都有10个字符长?您是否有一些示例数据要共享等。看起来不错,但我不确定如何改变我已经创建的数据帧。我有x%mutate(xy=str\u split\u fixed(string,“,max(nchar(a))),它不起作用,我建议使用mutate将结果保存在新的数据帧中