在管道工中使用 dplyr::filter
Using dplyr::filter within plumber
我有一个水管工 API 并且想要 return 一个基于通过 dplyr 过滤的值。我通常会在过滤中使用引号 (group == "a"
),但我不确定在这里做什么。
library(plumber)
#* @apiTitle Test filtering
df <- data.frame(group = c("a", "b", "c"),
var1 = c(3, 1, 2),
var2 = c( 2, 4, 8))
#* Return one value
#* @param "my_group" My Group
#* @post /my_output
function(group) {
df %>%
filter(group == my_group) %>%
select(var1)
}
它应该看起来像
#* Return one value
#* @param my_group My Group
#* @get /values
function(my_group) {
df %>%
filter(group == my_group) %>%
select(var1)
}
然后您可以使用 URL,例如 /values?my_group=a
。参数将通过字符串传递,因此您无需担心引号。如果你真的想有相同的变量名,你可以做
#* Return one value
#* @param group My Group
#* @get /values
function(group) {
df %>%
filter(.data$group == .env$group) %>%
select(var1)
}
所以你有 /values?group=a
这些也适用于 POST 请求,显示 GET URL.
更容易
我有一个水管工 API 并且想要 return 一个基于通过 dplyr 过滤的值。我通常会在过滤中使用引号 (group == "a"
),但我不确定在这里做什么。
library(plumber)
#* @apiTitle Test filtering
df <- data.frame(group = c("a", "b", "c"),
var1 = c(3, 1, 2),
var2 = c( 2, 4, 8))
#* Return one value
#* @param "my_group" My Group
#* @post /my_output
function(group) {
df %>%
filter(group == my_group) %>%
select(var1)
}
它应该看起来像
#* Return one value
#* @param my_group My Group
#* @get /values
function(my_group) {
df %>%
filter(group == my_group) %>%
select(var1)
}
然后您可以使用 URL,例如 /values?my_group=a
。参数将通过字符串传递,因此您无需担心引号。如果你真的想有相同的变量名,你可以做
#* Return one value
#* @param group My Group
#* @get /values
function(group) {
df %>%
filter(.data$group == .env$group) %>%
select(var1)
}
所以你有 /values?group=a
这些也适用于 POST 请求,显示 GET URL.
更容易