R-使用带变量的LIKE算子
我想在R-使用带变量的LIKE算子,r,search,desctools,R,Search,Desctools,我想在DescTools包中的%like%函数中替换变量而不是字符串。之后我想用它做的是有一个循环,变量改变值,我得到不同的结果。 我试过几种方法,但都没能奏效。 以下是我的示例代码: library(DescTools) library(dplyr) x <- c(1,2,3,4,5,6) y <- c("a","b","c","a","a","a") df <- data.frame(x = x, y = y) df 现在我
DescTools
包中的%like%
函数中替换变量而不是字符串。之后我想用它做的是有一个循环
,变量改变值,我得到不同的结果。我试过几种方法,但都没能奏效。
以下是我的示例代码:
library(DescTools)
library(dplyr)
x <- c(1,2,3,4,5,6)
y <- c("a","b","c","a","a","a")
df <- data.frame(x = x, y = y)
df
现在我想创建一个变量,它将保存我要搜索的值
# create a variable which will take out the value I'm looking for
let <- '"%a%"'
选项1:评估变量
df %>% filter(y %like% eval(parse(text = let)))
选项2:利用dplyr
中的filter
功能
df %>% filter_(paste0("y %like%", let))
编辑:事实上,注释是更好的答案,因为它不那么复杂——问题在于报价级别。选项1:评估变量
df %>% filter(y %like% eval(parse(text = let)))
选项2:利用dplyr
中的filter
功能
df %>% filter_(paste0("y %like%", let))
编辑:事实上,注释是更好的答案,因为它不那么复杂——这是报价级别的问题。这对我有效
selectVar%filter(y%like%selectVar)
你的作业中有太多的报价:让我试着把事情过度复杂化。这很有效。这对我来说很有效selectVar%filter(y%like%selectVar)
你的作业中有太多的引号:让我试着把事情复杂化。这就行了。不,OP设置变量let
时出错了。这是不必要的。不,OP错误地设置了变量let
。这是没有必要的。