我有一个函数,其参数之一是一个称为var的字符变量。 var是一个动态字符变量,在不同时间采用不同的元素组合。为了提供一些背景知识,我有一个名为comb_list的列表,该列表存储元素的不同组合,而var最终吸收这些元素。例如:
input = c("a", "b") ## elements
comb_list = do.call(c, lapply(seq_along(a), combn, x = variables_of_interest, simplify = FALSE)) ## making all combinations from a and b, and storing them in comb_list.
结果:
comb_list [[1] [1]“ a”
[[2]] [1]“ b”
[[3]] [1]“ a”“ b”
class(comb_list)## comb_list的类 [1]“列表”
class(comb_list [[1]])##其元素的类 [1]“字符”
然后我运行一个循环,使var接受comb_list的值。因此,首先var =“ a”,然后是“ b”,然后是“ a”,“ b”。在我的函数中,我只想在var中出现“ b”时才进行计算。
这是我使用dplyr所做的工作:
if_else(“ b”%in%var,X,Y)
但这给了我错误” condition
必须是逻辑矢量,而不是grouped_df/tbl_df/tbl/data.frame
对象。
我不确定出了什么问题。任何帮助将不胜感激。
谢谢!