gpt4 book ai didi

r - 在数据框的上下文中评估操作

转载 作者:行者123 更新时间:2023-12-01 12:04:48 27 4
gpt4 key购买 nike

我正在使用包中的公式,我想删除所有非数字项。

我的问题是,由于基本公式可能包含运算,我无法直接计算某些项。

这是一个代表:

datax=mtcars
op = c("mpg", "log(mpg)", "ifelse(mpg>2, '>2', '<=2')")
sapply(op, function(x){ is.numeric(datax[[x]]) })
#T,F,F
sapply(op, function(x){ is.numeric(with(data, get(x))) })
#Error in get(x) : object 'log(mpg)' not found

#Expected output:
#T,T,F

我知道我可以使用 attach(datax) 但这个函数是高度 not recommended我宁愿避免它。

有没有办法在数据帧的上下文中评估操作,以便我可以测试结果是否为数字?

注意:我不确定我的标题应该是关于评估或公式术语删除的,请随时提出修改建议。

最佳答案

一种选择是使用eval(parse()),即

sapply(op, function(i) {is.numeric(with(mtcars, eval(parse(text = i))))})

# mpg log(mpg) ifelse(mpg>2, '>2', '<=2')
# TRUE TRUE FALSE

关于r - 在数据框的上下文中评估操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58803198/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com