我想打印通过函数的列表的元素编号。例如,如果列表中有10个元素,我想要一个计数器,当函数通过每个元素时,它将从0到10。
a = length(url)
func0 = function(url){
a = a-1
print(a)
}
cc = lapply(url, func0)
然而,这不起作用。请让我知道我做错了什么。
答案 0 :(得分:2)
您的函数更改变量a
的内部副本,并打印9次10次。要将此行为更改为所需,您应该将赋值运算符=
(顺便说一句,为什么不<-
?等号通常用于函数&#39;参数的定义)到全局赋值运算符{{1 }}
<<-
它可以工作,但通常的建议是避免代码中的全局赋值运算符。
作为替代方案,我可以建议检查包func0 = function(url){
a <<- a-1
print(a)
}
,这会为pbapply
函数添加进度条。
*apply
require(pbapply)
pblapply(url, func1)
代表您要应用于列表中每个元素的函数。