【发布时间】:2019-12-13 16:27:35
【问题描述】:
所以我有一个接受多个参数的函数,我想将 apply 用于其中一个参数的值。 我举个例子:
v<-c("a","b","c","d")
f<-function(arg1,arg2,arg3,arg4){
}
我尝试使用这行代码,因为我只想使用“arg2”:
x<-lapply(v,f(),arg2=arg2)
不幸的是,我得到了错误:
check_args_given_nonempty(args, c("arg1", "arg2", "arg3", "arg4", 中的错误: 您必须向其中至少一个提供非空值 参数1 arg2 arg3 arg4
提前感谢您的任何回答
【问题讨论】:
-
这就是你的想法:
lapply(1:4, function(x) {rnorm(n=10, mean=x, sd=5)}) -
您能否发布一个更完整、更清晰的示例,最好有一些预期的输出?我不明白你在做什么。
-
fun<-function(arg1,arg2,arg3,arg4){} x<-lapply(v,f(x) fun(arg1, x, arg3,arg4)) -
我期望的输出基本上是为向量“v”的每个成员执行函数......事情是“v”只能在函数的“arg2”中使用。我会发布实际功能,但它太具体了,我无法解释自己,对不起,我很困惑
-
不管有什么其他问题,在调用
lapply时,您肯定需要去掉f()之后的括号,就像x <- lapply(v, f)一样,因为包含括号意味着a对f()的调用将作为参数FUN传递给lapply,但没有括号,函数f本身作为参数FUN传递,这就是您想要的。
标签: r