我有一个函数,我正在使用mapply在数据框或矩阵(df)的列表上应用它。该函数基于原始数据框的某些转换标准输出四种不同类型的数据框(例如a:d),但是我遇到了问题,因为该函数只允许我输出一个结果。 我尝试将它们整理成列表,但是当我运行简化版本的函数时,我得到了以下结果。
df1<-matrix(rnorm(10), nrow=10, ncol=10)
df2<-df1
df<-list(df1, df2)
func<-function (x) {
a<-x*1
b<-x*2
c<-x*3
d<-x*4
return(list(a,b,c,d))
}
finalresult<-mapply(func, x=df)
str(finalresult)
List of 8
$ : num [1:10, 1:10] -3.211 -0.121 -0.2 0.491 1.118 ...
$ : num [1:10, 1:10] -6.422 -0.242 -0.4 0.982 2.235 ...
$ : num [1:10, 1:10] -9.633 -0.362 -0.6 1.473 3.353 ...
$ : num [1:10, 1:10] -12.844 -0.483 -0.8 1.964 4.471 ...
$ : num [1:10, 1:10] -3.211 -0.121 -0.2 0.491 1.118 ...
$ : num [1:10, 1:10] -6.422 -0.242 -0.4 0.982 2.235 ...
$ : num [1:10, 1:10] -9.633 -0.362 -0.6 1.473 3.353 ...
$ : num [1:10, 1:10] -12.844 -0.483 -0.8 1.964 4.471 ...
- attr(*, "dim")= int [1:2] 4 2
在这种情况下,您可以看到它只是向我提供了df1的四个输出数据框(a:d)的列表,然后在其后附加了df2的下一组输出。 我希望有一个输出,其中每个数据框转换都放在一个列表中,可以按类别访问它(例如,finalresults $ a)。 非常感谢任何帮助!
谢谢, -切尔西
mapply
中设置SIMPLIFY=FALSE
。 - Blue MagisterSIMPLIFY=FALSE
,而不是SIMPLY=FALSE
(!) - Ben BolkerError in function (x) : unused argument(s)
意味着你指定了一个不存在的参数。 - Roman Luštrik