gpt4 book ai didi

regex - 拆分驼峰列名称

转载 作者:行者123 更新时间:2023-12-04 14:12:03 24 4
gpt4 key购买 nike

我一直试图弄清楚这一点,并想我会在这里问。

假设我有一个如下所示的数据框:

df <- data.frame(participant = 1:6, group = c("adult", "adult", "child", "child", "NSS", "NSS"), RegProto = c(2, 3, 4, 2, 4, 3), RegInt = c(2, 3, 4, 6, 6, 5), RegDistant = c(3, 3, 4, 5, 4, 5), IrregProto = c(4, 5, 3, 4, 3, 1), IrregInt = c(4, 4, 4, 4, 4, 4), IrregDistant = c(4, 5, 6, 8, 9, 1))

这个数据框的问题是每个都包含两个变量:一个变量的值是 RegIrreg ,另一个值为 Proto , Int , 或 Distant .我想做的是拆分这些列并使表格变长,最好使用 tidyr .我以为我可以这样做。
library("tidyr")
df_long <- df %>%
gather(index, n, -group, -participant) %>%
select(participant, group, index, n) %>%
separate(index, into = c("verb", "similarity"), sep = "\\.?=\\p{Upper}")

这做我想要的直到 separate() .我收到一条错误消息,指出值未拆分,但没有其他建议说明为什么会这样。我是 regex 的新手,所以我怀疑问题一定存在,但我无法弄清楚正确的语法可能是什么。

最佳答案

您可以使用此正则表达式:

(?<=.)(?=[A-Z])

这表示(零长度)位置后跟一个大写字母和任何字符。

命令:
library(dplyr)
df %>%
gather(index, n, -group, -participant) %>%
select(participant, group, index, n) %>%
separate(index, into = c("verb", "similarity"), sep = "(?<=.)(?=[A-Z])")

关于regex - 拆分驼峰列名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28027577/

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