使用R的独立功能,我试图在每次数字增加时将一列分成新的列。 列设置如下: Q1_W1 Q1_W2 Q2_W1 Q2_W2 Q3_W1 依此类推,直到以Q9结尾。 希望将在Q1,Q2,Q3等上拆分的组分开。
到目前为止,我只尝试填写Q1。
nn3=nalhx%>%
separate(q, into =c("Q1","Q2","Q3","Q4","Q5","Q6","Q7","Q8","Q9"), sep = "(^q+[0-9])")
答案 0 :(得分:2)
根据显示的图像,我们可以通过从'q'中获取separate
之前的子字符串,而不是_
来创建分组列,并使用pivot_wider
来更改长整型。到“宽”
library(dplyr)
library(stringr)
library(tidyr)
nalhx %>%
group_by(grp = str_remove(q, '_.*')) %>%
mutate(rn = row_number()) %>%
ungroup %>%
pivot_wider(names_from = grp, values_from = q,
values_fill = list(q = '')) %>%
select(-rn)
# A tibble: 2 x 3
# Q1 Q2 Q3
# <chr> <chr> <chr>
#1 Q1_W1 Q2_W1 Q3_W1
#2 Q1_W2 Q2_W2 ""
nalhx <- structure(list(q = c("Q1_W1", "Q1_W2", "Q2_W1", "Q2_W2", "Q3_W1"
)), class = "data.frame", row.names = c(NA, -5L))