gpt4 book ai didi

r - 在 dplyr 中将 starts_with 与 group_by 结合使用

转载 作者:行者123 更新时间:2023-12-01 10:36:13 24 4
gpt4 key购买 nike

我想这可能是一个简单的技巧,但我不知道如何实现它......

我的日期集看起来像:

Name, Score
A a, 20
A, 30
B b, 40

我期望的输出是:
Name, Score
A, 50
B, 40

在一个单词中,将名称以相同单词开头的分数相加(如果有,则在空格之前)。我希望这个例子是不言自明的。 :)

PS:代码运行越快越好。数据集很大...

最佳答案

你可以尝试这样的事情:

library(dplyr)
library(stringr)

df$newName <- str_extract(df$Name, '[[:alnum:]]+')
df %>% group_by(newName) %>% summarise(Score = sum(Score))

Source: local data frame [2 x 2]

newName Score
(chr) (int)
1 A 50
2 B 40

请注意,您需要确保将 'Name' 读作字符向量而不是因子。使用 stringsAsFactors = FALSE在您的阅读电话中,或使用 as.character转换它。

如果你想要完整的第一个“字符串”,你也可以使用这个正则表达式模式:
df$newName <- str_extract(df$Name, '([^\\s]+)')

关于r - 在 dplyr 中将 starts_with 与 group_by 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34964838/

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