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