r - R根据数字变化分离列
问题描述
使用 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])")
解决方案
根据显示的图像,我们可以通过在from 'q'separate
之前获取子字符串来创建分组列,并使用将 long 更改为 'wide'_
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))
推荐阅读
- python - 正则表达式仅搜索一位数字
- c - 如何更改全局数组的元素以供所有线程查看
- vim - 如何编写 vim 函数来搜索多个字符串(当我调用函数时)并突出显示所有字符串(以便我使用 n/N 移动)
- javascript - 如何使用下拉选择操作道具值
- matlab - 通过 Matlab 找到线性方程组的完整和符号解
- c# - 使用 C# 在投票中发布多项选择
- excel - 如何在 Excel 图表的水平轴上每 6 个单位使标签变为红色?
- python - 在 RH6 中安装 Gunicorn 指向 Python2.7
- php - 当我使用多个参数时,无法使用 .htaccess rewriteRule 重定向到特定页面
- excel - 在excel中返回具有最早和最晚日期的文本属性