您必须删除
print
在你的代码中。
也许你可以试试这种形式的功能。
数据:
dataone <- c( 5.7, 15.3, 14.0, 13.2 ,14.0, 9.4 ,19.0 ,13.7, 19.4, 19.3 ,11.5, 16.6, 17.7, 3.2 , 4.7, 1.4, 18.4, 10.1, 9.6, 16.4 )
datatwo <- c( 21, 13, 29 ,29 ,22 ,13 ,18 ,13 ,29 ,13, 23, 17 ,17 ,11, 29, 15, 20, 21 ,26, 17)
datathree <- c( 6.7, 9.8 , 1.9, 5.9, 5.3, 5.2 ,1.2 ,5.3 , 2.2, 8.6 , 2.9, 4.6 , 4.9 , 6.1, 9.4, 10.0 , 5.1 , 9.8 , 3.1, 3.2)
dataall <- list(dataone = dataone,
datatwo = datatwo,
datathree = datathree )
代码:
foursmean <- function (x, by ) {
x <- split( x = x, f = ceiling( seq_along(x) / by) )
sapply( x, mean, na.rm = TRUE )
}
输出:
by
指定要拆分向量的大小。你可以有任何正数
sapply(dataall, foursmean, by = 4)
# dataone datatwo datathree
# 1 12.050 23.0 6.075
# 2 14.025 16.5 4.250
# 3 16.700 20.5 4.575
# 4 6.750 18.0 7.600
# 5 13.625 21.0 5.300
sapply(dataall, foursmean, by = 5)
# dataone datatwo datathree
# 1 12.44 22.8 5.92
# 2 16.16 17.2 4.50
# 3 10.74 19.4 5.58
# 4 11.18 19.8 6.24