我想将一个字符字段分成单个变量,一个字符串中的每个字符。
library(dplyr)
temp1 <- data.frame(a = c('dedefdewfe' , 'rewewqreqw'))
for(i in 1:10){
temp1 <- temp1 %>%
mutate(paste('v' , i , ,sep = '') = substr(a , i , i))
}
结果数据框将包含11个变量,原始a
,v1
到v10
答案 0 :(得分:3)
tidyr::separate
对此有好处。您不能拆分空字符串,但可以指定拆分位置......
library(tidyr)
library(dplyr)
temp1 %>%
mutate(b=a) %>% ## make a copy
separate(b,into=paste0("v",1:10),sep=1:9)
(可能更好的做法是使用nc <- nchar(temp1$a[1])
,然后分别使用nc
,nc-1
代替10,9)