Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R基于数字变化的独立列_R_Regex - Fatal编程技术网

R基于数字变化的独立列

R基于数字变化的独立列,r,regex,R,Regex,使用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])") 期望输出: 根据显示的图像,我们

使用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])")
期望输出:

根据显示的图像,我们可以通过将
\uu
前面的子字符串从“q”中取出来创建一个分组列,而不是将
分开,并使用
pivot\u wide
从长变为“宽”

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 ""   
库(dplyr)
图书馆(stringr)
图书馆(tidyr)
nalhx%>%
分组依据(grp=str\U删除(q,'..*'))%>%
变异(rn=行数())%>%
解组%>%
枢轴宽度(名称=grp,值=q,
值\u fill=列表(q='')%>%
选择(-rn)
#一个tibble:2x3
#第一季度第二季度第三季度
#    
#1 Q1_W1 Q2_W1 Q3_W1
#2 Q1_W2 Q2_W2“
数据
nalhx关于提出一个人们可以帮助解决的R问题。这包括一个数据示例,所有必要的代码,以及对您正在尝试做的事情和没有做的事情的清晰解释。这是一个很好的解决方案。只要我能长/宽一点,我就会试试。谢谢
nalhx <- structure(list(q = c("Q1_W1", "Q1_W2", "Q2_W1", "Q2_W2", "Q3_W1"
)), class = "data.frame", row.names = c(NA, -5L))