我有一个数据框架df,其中一列如下所述.我想将V1列拆分为多列,如所需输出中提到的.

  df = read.table(text = " parameter_1_day_10
                    parameter_1_day_3 
                    parameter_2_last_day")

期望输出

df2 = read.table(text = " 1 day_10
                 1 day_3 
                2 last_day")

推荐答案

你可以用tidyrseparate_wider_regex()来做这个. regex的语法有点奇怪. 从本质上讲,您可以通过在向量中的正则表达式中命名字符串中的那些部分来标识这些部分. 所以,使用的正则表达式是下面的:

c("parameter_", c1="[^_]*", "_", c2=".*")

因为"parameter_"没有命名,所以它会显示为其中一列. 任何在"parameter_"之后直到下一个下划线之前不是下划线([^_]*)的东西都将进入名为c1的变量. 下面的下划线将不会保存,然后该下划线之后的所有内容都保存为c2.

library(dplyr)
library(tidyr)
df = read.table(text = " parameter_1_day_10
                  parameter_1_day_3 
                  parameter_2_last_day")

df %>% 
  separate_wider_regex(V1, c("parameter_", c1="[^_]*", "_", c2=".*"))
#> # A tibble: 3 × 2
#>   c1    c2      
#>   <chr> <chr>   
#> 1 1     day_10  
#> 2 1     day_3   
#> 3 2     last_day

创建于2024—04—03,reprex v2.0.2

R相关问答推荐

使用R的序列覆盖

无法将传奇添加到cowplot多情节中

使用ggsankey调整Sankey图中单个 node 上的标签

合并DFS列表并将索引提取为新列

从外部文件读取多个值作为字符向量

通过在colname中查找其相应值来创建列

无法定义沿边轨迹的 colored颜色 渐变(与值无关)

在R函数中使用加号

具有重复元素的维恩图

在带有`R`中的`ggmosaic`的马赛克图中使用图案而不是 colored颜色

如何使用For-R循环在向量中找到一系列数字

如何将一列中的值拆分到R中各自的列中

提高圣彼得堡模拟的速度

如何计算增加10米(0.01公里)的行?

为R中的16组参数生成10000个样本的有效方法是什么?

R仅当存在列时才发生变异

R-找出存在其他变量的各种大小的所有组合

使用其他DF中的文件名将列表中的每个元素保存到文件中

R dplyr::带有名称注入(LHS of:=)的函数,稍后在:=的RHS上引用

通过不完全重叠的多个柱连接