1
我想存储在向量运算符适用operatorsUsed
到series1
和数据帧df
的series2
:应用运营商
operatorsUsed = c('==', '>=', '<=')
series1 = 1:5
series2 = c(1, 3, 2, 4, 5)
df = data.frame(series1,
series2,
stringsAsFactors = FALSE)
我试图结合parse()
和eval()
功能:
nbrOperators = length(operatorsUsed)
for (j in 1:nbrOperators){
a = df[eval(parse(text = paste0(df$series1, operatorsUsed[j], df$series2))),]
tableCreated = paste0('b', j)
assign(tableCreated, a)
}
但这不起作用。通过解析,我可以获得例如j=1
expression(1==1, 2==3, 3==2, 4==4, 5==5)
这看起来很有希望,但随后将eval
产量
[1] TRUE
,而不是寻找
[1] TRUE FALSE FALSE TRUE TRUE
有没有去我能将存储在向量作为文本运营商?
'sapply(表达式(1 ==使用
match.fun(op)
代替get(op)
1,2 == 3,3 == 2,4 == 4,5 == 5),eval)' – rawrThanks @rawr,解决了它。 – koteletje