我有一个应用于数据帧的函数(下面我称之为function1name)。该功能有多个输出保存在列表中。
函数内部是一个常量(cval)。我想使用许多不同的常数值(例如1到5之间或1到100之间)多次在同一数据帧上运行该函数。对于函数的每次运行,我想将结果保存在列表中。
这是我尝试过的:
newfunction<-function (df)
{
for(i in 1:5) #this could be 1:10, 1:100 etc. but I'm just trying 1:5 for now
{robj<-list(function1name(df, cval=i)) #function1name is the function with the constant
}
}
newfunction(df)
这个问题是它只在我的对象robj中保存了function1name的最后一次运行。即在上面,它只在cval = 5时保存function1name的执行。我想在cval = 1,2,3,4和5时保存在该函数的列表中。
任何帮助表示感谢。
答案 0 :(得分:0)
list
也可以包含list
个元素。因此,您可以对多个常量使用相同的方法:
cval <- 1:10
l <- vector(mode = "list", length = length(cval)
for (i in seq(along=cval)) {
l[[i]] <- list(function1name(df, cval=cval[i]))
}
或者您可以使用lapply
:
cval <- 1:10
l <- lapply(cval, function1name, df = df)