gpt4 book ai didi

r - 在 R 中的最后一个下划线处将一列分成两列

转载 作者:行者123 更新时间:2023-12-04 11:36:39 25 4
gpt4 key购买 nike

我有一个这样的数据框

id <-c("1","2","3")
col <- c("CHB_len_SCM_max","CHB_brf_SCM_min","CHB_PROC_S_SV_mean")

df <- data.frame(id,col)

我想通过将“col”分成测量和统计来创建 2 列。 stat 基本上是最后一个下划线(最大值、最小值、平均值等)之后的文本

我的 所需的输出
  id   Measurement stat
1 CHB_len_SCM max
2 CHB_brf_SCM min
3 CHB_PROC_S_SV mean

我以这种方式尝试过,但统计列为空。我不确定我是否指向最后一个下划线。
library(tidyverse)
df1 <- df %>%
# Separate the sensors and the summary statistic
separate(col, into = c("Measurement", "stat"),sep = '\\_[^\\_]*$')

我在这里缺少什么?有人可以指出我正确的方向吗?

最佳答案

我们可以使用 extract通过确保第二组具有一个或多个不是 _ 的字符来捕获为两个组直到字符串的结尾 ( $ )

library(tidyverse)
df %>%
extract(col, into = c("Measurement", "stat"), "(.*)_([^_]+)$")
# id Measurement stat
#1 1 CHB_len_SCM max
#2 2 CHB_brf_SCM min
#3 3 CHB_PROC_S_SV mean

或使用 separate使用正则表达式查看
df %>% 
separate(col, into = c("Measurement", "stat"), sep="_(?=[^_]+$)")

关于r - 在 R 中的最后一个下划线处将一列分成两列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50518137/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com