我想在包中的%like%
函数中替换一个变量而不是一个字符串。DescTools
之后我想要做的是有一个loop
变量改变值的地方,我得到不同的结果。
我尝试了几种方法,但无法使其正常工作。
这是我的示例代码:
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
如果我在列中搜索“a”,这就是我得到的结果x
。这是所需的输出。
df %>% filter(y %like% "%a%")
# desired output
> df %>% filter(y %like% "%a%")
x y
1 1 a
2 4 a
3 5 a
4 6 a
现在我想创建一个变量来保存我想要搜索的值
# create a variable which will take out the value I'm looking for
let <- '"%a%"'
如果我使用该变量代替string
,我要么没有结果,要么得到错误的结果。
我有什么办法可以使用字符串的变量插入?
#not working
df %>% filter(y %like% let)
> df %>% filter(y %like% let)
[1] x y
<0 rows> (or 0-length row.names)
#not working
df %>% filter(y %like% cat(let))
> df %>% filter(y %like% cat(let))
"%a%" x y
1 1 a
2 2 b
3 3 c
4 4 a
5 5 a
6 6 a