【发布时间】:2016-11-21 14:22:21
【问题描述】:
这似乎是一个奇怪的问题,但是有没有办法将一个值传递给 filter() 基本上什么都不做?
data(cars)
library(dplyr)
cars %>% filter(speed==`magic_value_that_returns_cars?`)
你会得到整个数据框cars。我认为这在闪亮的应用程序中可能很有用,用户只需要选择他想要过滤的值;例如,用户可以选择“Europe”、“Africa”或“America”,然后在后台过滤数据框,然后返回包含“Europe”描述性统计信息的表格(如果用户选择“Europe”) .但是,如果用户想要在没有首先过滤的情况下获得描述性统计信息怎么办?是否有一个值可以传递给过滤器以“取消”过滤器并将整个数据帧传递给 summarise()?
【问题讨论】:
-
简单而正是我想要的!谢谢!
-
任何计算结果为
TRUE的表达式都可以。另一个例子是cars %>% filter(TRUE) -
非常好的解决方案!但是要在使用列名作为参数然后将其传递给
filter()的函数中使用它,我需要一个更通用的表达式,而filter(speed==speed)似乎更通用。 -
speed == speed绝对不是一般的。速度 NA 示例:car = data.frame(num = 1:3, speed = c(1:2, NA)); car %>% filter(speed == speed) -
谢谢格雷戈里。看来我需要使用
ifelse语句。没什么大不了的!
标签: r dplyr data-manipulation