小编Fel*_*x S的帖子

dplyr filter:获取具有最小变量的行,但仅获取第一个if多个最小值

我希望使用一种分组过滤器dplyr,在每个组中只返回具有最小变量值的行x.

我的问题是:正如预期的那样,在多个最小值的情况下,返回具有最小值的所有行.但在我的情况下,如果存在多个最小值,我只想要第一行.

这是一个例子:

df <- data.frame(
A=c("A", "A", "A", "B", "B", "B", "C", "C", "C"),
x=c(1, 1, 2, 2, 3, 4, 5, 5, 5),
y=rnorm(9)
)

library(dplyr)
df.g <- group_by(df, A)
filter(df.g, x == min(x))
Run Code Online (Sandbox Code Playgroud)

正如所料,返回所有最小值:

Source: local data frame [6 x 3]
Groups: A

  A x           y
1 A 1 -1.04584335
2 A 1  0.97949399
3 B 2  0.79600971
4 C 5 -0.08655151
5 C 5  0.16649962
6 C 5 -0.05948012 …
Run Code Online (Sandbox Code Playgroud)

r dplyr

66
推荐指数
5
解决办法
4万
查看次数

R grep:将一个字符串与多个模式匹配

在R中,grep通常匹配多个字符串的向量与一个正则表达式.

问:是否有可能将单个字符串与多个正则表达式匹配?(没有循环遍历每个单一的正则表达式模式)?

一些背景:

我有7000多个关键字作为几个类别的指标.我无法更改该关键字字典.字典具有以下结构(第1列中的关键字,数字表示这些关键字所属的类别):

ab  10  37  41
abbrach*    38
abbreche    39
abbrich*    39
abend*  37
abendessen* 60  63
aber    20  23  45
abermals    37
Run Code Online (Sandbox Code Playgroud)

用"|"连接这么多关键字 是不可行的方式(我不知道哪个关键字产生了命中).此外,只是反转"模式"和"字符串"不起作用,因为模式具有截断,这在其他方面不起作用.

[ 相关问题,其他编程语言]

regex r

28
推荐指数
1
解决办法
2万
查看次数

dplyr:将组聚合直接添加到长数据帧

是否可以将组聚合直接添加到长格式原始数据框中dplyr

到目前为止,我通过两个步骤完成了它:聚合和合并.dplyr合并步骤内外是否可能?

library(dplyr)
df <- data.frame(x=rnorm(15), A=factor(rep(1:3, each=5)))
df2 <- df %>% group_by(A) %>% summarise(x_mean=mean(x))
df3 <- merge(df, df2, by="A")
Run Code Online (Sandbox Code Playgroud)

结果如下:

> df3
   A      x x_mean
1  1  0.635 -0.077
2  1 -1.059 -0.077
3  1  0.408 -0.077
4  1  1.404 -0.077
5  1 -1.774 -0.077
6  2 -0.419 -0.256
7  2  0.417 -0.256
8  2 -0.443 -0.256
9  2 -0.431 -0.256
10 2 -0.403 -0.256
11 3  0.239  0.767
12 3  1.060  0.767
13 3 …
Run Code Online (Sandbox Code Playgroud)

r dplyr

1
推荐指数
1
解决办法
346
查看次数

标签 统计

r ×3

dplyr ×2

regex ×1