也许这是一个愚蠢的问题,但是我找不到解决方案。
我想使用2019-07-17 10:58:45.460986-0700 ProxyTest[2337:109309] integer value: 26
2019-07-17 10:58:45.461066-0700 ProxyTest[2337:109309] integer value: 8
2019-07-17 10:58:45.461140-0700 ProxyTest[2337:109309] integer value: 102
2019-07-17 10:58:45.461222-0700 ProxyTest[2337:109309] integer value: 65
2019-07-17 10:58:45.461311-0700 ProxyTest[2337:109309] integer value: 53
2019-07-17 10:58:45.461385-0700 ProxyTest[2337:109309] integer value: 2
2019-07-17 10:58:45.461448-0700 ProxyTest[2337:109309] integer value: 190
2019-07-17 10:58:45.461510-0700 ProxyTest[2337:109309] integer value: 784
2019-07-17 10:58:45.461563-0700 ProxyTest[2337:109309] integer value: 212
传递变量名,并使用变量名来评估paste()
中的不等式,但是它返回0行,而不是我的预期输出
我尝试使用dplyr::filter()
和eval()
失败
as.formula()
答案 0 :(得分:1)
我们可以将变量名的字符串表示形式转换为符号,并用0
取消引用:
!!
,或者如果我们不想加载library(dplyr)
library(rlang)
varname <- 'mpg'
mtcars %>%
filter(qsec >= !!sym(varname))
,则使用as.name
:
rlang
输出:
library(dplyr)
varname <- 'mpg'
mtcars %>%
filter(qsec >= !!as.name(varname))
答案 1 :(得分:0)
尽管我同意@avid_useR解决方案,但我也分享了一些想法:
如果我正确理解了您的问题,您是否希望xdecil
对象指向另一个具有特定值的名为detro007
的现有变量?在这种情况下,可以使用?get()
函数将现有detro007
变量的值分配给您创建的变量。
尝试:
library(dplyr)
dcl <- '07'
xdecil <- get(paste('detr0', dcl, sep=''))
final_cust <- cd_probs %>% filter(final_prob>=xdecil)