【发布时间】:2018-11-19 18:05:09
【问题描述】:
所以我有一个大的对象列表(200+),其中只包含一个数值。我想对所有这些应用相同的数学(获得 80% 的值)函数,但它不适合我。
这是一个小例子。
a = 680
b = 820
c = 1040
list = as.list(ls())
fun = function(x){x*.8}
for (i in list){
fun(i)
}
我收到一条错误消息non-numeric argument to binary operator。我知道这可能会发生,因为该软件将函数应用于列表中的名称而不是数值,但是对于我的一生,我无法让它工作并且无法找到这个确切的问题在线的。我知道答案一定很简单,但我是新手,真的。任何帮助表示赞赏。
谢谢!!
【问题讨论】:
-
将您的列表更改为
list = mget(ls())而不是as.list使用mget然后您就可以进行所有其他操作了 -
就是这样。我很欣赏 Jason 和 vectorson 的回答,但是在我的环境中有 200 多个元素,我不希望手动创建向量。我不知道“mget”功能。非常感谢!