gpt4 book ai didi

regex - tidyr 提取正则表达式

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

<分区>

我有一个数据框,其中包含一些变量和场景的一些统计信息。数据如下:

df <- data.frame(
Scenario = c('base','stress','extreme'),
x_min = c(-3,-2, -2.5),
x_mean = c(0,0.25, 1),
x_max = c(2, 1, 3),
y_min = c(-1.5, -2, -3),
y_mean = c(1, 2, 3),
y_max = c(5, 3, 3.5),
z_min = c(0, 1, 3),
z_mean = c(0.25, 2, 5),
z_max = c(2, 4, 7)
)

Scenario x_min x_mean x_max y_min y_mean y_max z_min z_mean z_max
1 base -3.0 0.00 2 -1.5 1 5.0 0 0.25 2
2 stress -2.0 0.25 1 -2.0 2 3.0 1 2.00 4
3 extreme -2.5 1.00 3 -3.0 3 3.5 3 5.00 7

我想使用 tidyr 的收集和提取函数(以类似于 Hadley 对 this question 的回答的方式)以如下格式获取数据:

new_df
Scenario variable min mean max
1 base x -3.0 0.00 2.0
2 stress x -2.0 0.25 1.0
3 extreme x -2.5 1.00 3.0
4 base y -1.5 1.00 5.0
5 stress y -2.0 2.00 3.0
6 extreme y -3.0 3.00 3.5
7 base z 0.0 0.25 2.0
8 stress z 1.0 2.00 4.0
9 extreme z 3.0 5.00 7.0

到目前为止我的命令是这样的:

new_df <- df %>%
gather(key, value, -Scenario) %>%
extract(key, c("min", "mean", "max"), "regex")

这是我正在苦苦挣扎的正则表达式。按照上面提到的问题的答案,我已经尝试过:

"_min|_mean|_max" --> idea being to capture the 3 different groups

我得到的错误看起来像:

 Error in names(l) <- into : 
'names' attribute [3] must be the same length as the vector [0]

我认为这个错误是说正则表达式不是“找到”3 个组来分类到我通过的 c("min","mean","max")

什么正则表达式可以让它工作?或者还有其他更好的方法吗?

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