R 如何将参数传递给*apply系列函数中的函数

R 如何将参数传递给*apply系列函数中的函数,r,function,apply,lapply,R,Function,Apply,Lapply,我有以下数据集: dput(tt2) structure(c(1371.25, NA, 1373.95, NA, NA, 1373, NA, 1373.95, 1373.9, NA, NA, 1374, 1374.15, NA, 1374, 1373.85, 1372.55, 1374.05, 1374.15, 1374.75, NA, NA, 1375.9, 1374.05, NA, NA, NA, NA, NA, NA, NA, 1375, NA, NA, NA, NA, NA, 13

我有以下数据集:

dput(tt2)
structure(c(1371.25, NA, 1373.95, NA, NA, 1373, NA, 1373.95, 
1373.9, NA, NA, 1374, 1374.15, NA, 1374, 1373.85, 1372.55, 1374.05, 
1374.15, 1374.75, NA, NA, 1375.9, 1374.05, NA, NA, NA, NA, NA, 
NA, NA, 1375, NA, NA, NA, NA, NA, 1376.35, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, 1376.25, NA, 1378, 1376.5, NA, NA, NA, 1378, 
1378, NA, NA, 1378.8, 231.9, 231.85, NA, 231.9, 231.85, 231.9, 
231.8, 231.9, 232.6, 231.95, 232.35, 232, 232.1, 232.05, 232.05, 
232.05, 231.5, 231.3, NA, NA, 231.1, 231.1, 231.1, 231, 231, 
230.95, 230.6, 230.6, 230.7, 230.6, 231, NA, 231, 231, 231.45, 
231.65, 231.4, 231.7, 231.3, 231.25, 231.25, 231.4, 231.4, 231.85, 
231.75, 231.5, 231.55, 231.35, NA, 231.5, 231.5, NA, 231.5, 231.25, 
231.15, 231, 231, 231, 231.05, NA), .Dim = c(60L, 2L), .indexCLASS = c("POSIXct", 
"POSIXt"), tclass = c("POSIXct", "POSIXt"), .indexTZ = "Asia/Calcutta", tzone = "Asia/Calcutta", index = structure(c(1459482300, 
1459483766.38983, 1459485231.77966, 1459486697.16949, 1459488162.55932, 
1459489627.94915, 1459491093.33898, 1459492558.72881, 1459494025.11864, 
1459495490.50847, 1459496955.89831, 1459498421.28814, 1459499887.67797, 
1459501353.0678, 1459502818.45763, 1459504283.84746, 1459505749.23729, 
1459507214.62712, 1459508680.01695, 1459510145.40678, 1459511610.79661, 
1459513076.18644, 1459514541.57627, 1459516007.9661, 1459517474.35593, 
1459518939.74576, 1459520405.13559, 1459521870.52542, 1459523335.91525, 
1459524804.30508, 1459526269.69492, 1459527735.08475, 1459529200.47458, 
1459530667.86441, 1459532134.25424, 1459533600.64407, 1459535066.0339, 
1459536531.42373, 1459537996.81356, 1459539702.20339, 1459541167.59322, 
1459542634.98305, 1459544100.37288, 1459545565.76271, 1459547031.15254, 
1459548496.54237, 1459549961.9322, 1459551429.32203, 1459552894.71186, 
1459554360.10169, 1459555829.49153, 1459557294.88136, 1459558760.27119, 
1459560225.66102, 1459561691.05085, 1459563160.44068, 1459564625.83051, 
1459566091.22034, 1459567557.61017, 1459569028), tclass = c("POSIXct", 
"POSIXt"), tzone = "Asia/Calcutta"), .Dimnames = list(NULL, c("A", 
"B")), class = c("xts", "zoo"))
我想学习如何将参数传递给apply系列函数中的函数。 第一个例子: 因为数据中有NAs,所以mean函数返回NA。所以我想通过
na.rm=TRUE

tt<-apply.daily(tt2, function(x) sapply(x,mean(na.rm=TRUE)))
第二个例子: 我想使用period.sum函数,它只接受单个列的值,并且需要列的索引

tt<-lapply(tt2, period.sum, endpoints(tt2))

Error in FUN(X[[i]], ...) : NA/NaN/Inf in foreign function call (arg 3)

tt您可以通过省略号(
)参数在
apply
系列的所有函数中传递参数,参见。现在,
apply.daily
只是
xts
对象的扩展,请参见
?apply.daily

 apply.daily(tt2, mean, na.rm=TRUE)
#apply.daily(  x,  FUN,        ...)

您可以通过省略号(
)参数在
apply
系列的所有函数中传递参数,参见。现在,
apply.daily
只是
xts
对象的扩展,请参见
?apply.daily

 apply.daily(tt2, mean, na.rm=TRUE)
#apply.daily(  x,  FUN,        ...)

sapply(x,mean,na.rm=TRUE)
。或者甚至可能只是:
apply.daily(tt2,mean,na.rm=TRUE)
您可以尝试使用现有函数来创建一个应用的新函数@板球是一个很好的参考资料,但遗憾的是,我仍然停留在初级水平上。@Delractiatus Maximus我已经完成了参考问题。我的第二个例子表明我完全应用了它。但是我仍然得到了错误,因此我的问题不是重复的。
sapply(x,mean,na.rm=TRUE)
。或者甚至可能只是:
apply.daily(tt2,mean,na.rm=TRUE)
您可以尝试使用现有函数来创建一个应用的新函数@板球是一个很好的参考资料,但遗憾的是,我仍然停留在初级水平上。@Delractiatus Maximus我已经完成了参考问题。我的第二个例子表明我完全应用了它。但我仍然得到错误,因此我的问题不是重复的。参见我的第二个问题example@runjumpfly答案也适用于您的第二个示例。@HongOoi-Error-in-FUN(X[[i]],…):NA/NaN/Inf-in-foreign-function-call(arg 3)@runjumpfly。但是您可以执行
period.apply(tt2,端点(tt2),colSums,na.rm=TRUE)
使用第二个示例,我想问的是如何将参数传递给lappy中period.sum中的端点。请参阅我的第二个示例example@runjumpfly答案也适用于您的第二个示例。@HongOoi FUN中的错误(X[[i]],…):外部函数调用中的NA/NaN/Inf(arg 3)@飞跑。但是您可以执行
period.apply(tt2,endpoints(tt2),colSums,na.rm=TRUE)
使用第二个示例,我想问的是如何将参数传递给lappy中period.sum中的端点。