R 按数据帧中的组计算数据帧中每N列的平均值

R 按数据帧中的组计算数据帧中每N列的平均值,r,dataframe,R,Dataframe,我有一个数据框列表。我希望在每个df中平均每n天一次 我正试图翻阅我的列表 test<-lapply(dataframe_list, function(d){ n <- 14 aggregate(d,list(rep(1:(nrow(d)%/%n+1),each=n,len=nrow(d))),mean)[-1] d } ) 最后,我希望看到这个df的前14行的平均值,当然,第一列不能有平均值。这是我的问题吗?警告消

我有一个数据框列表。我希望在每个df中平均每n天一次

我正试图
翻阅我的列表

test<-lapply(dataframe_list, function(d){ 
  n <- 14
  aggregate(d,list(rep(1:(nrow(d)%/%n+1),each=n,len=nrow(d))),mean)[-1]
  d
            } 
            ) 

最后,我希望看到这个df的前14行的平均值,当然,第一列不能有平均值。这是我的问题吗?

警告消息建议您在
mean
计算中包含非数字列。在显示的示例中,第一列是非数字的。我们可以通过
d1[-1]
删除第一列,然后创建一个新的分组列(“grp”),并使用
aggregate
中的公式方法获得“平均值”。通常,如果有许多非数值列,我们可以创建一个逻辑条件(
sapply(d1,is.numeric)
)来将数据集子集为仅数值列

 n <- 14
 aggregate(.~grp, transform(d1[sapply(d1, is.numeric)],
       grp= as.numeric(gl(nrow(d1), n, nrow(d1)))), 
              FUN=mean, na.rm=TRUE, na.action=NULL)
 #   grp X3MEHIS ACE_POT ADD_SUG_AVAIL_CHO ADD_SUG_TOT_SUG   ALA ALCOHOL
 #1   1       0       0             3.135               0 1.848       0
 #  PROTEIN_AN
 #1     24.181

请展示一个小示例数据集5-10列,5-10行,以及基于此的预期结果。描述令人困惑。有关指导原则,请立即查看我有一个数据帧列表。我试图用一个函数来覆盖dataframe_列表,该函数为列表中的每个dataframe平均每14行,然后将新的dataframe列表称为“test”<代码>测试这很好。但是,您能否展示一个具有5-10列和10行的单个数据集及其预期输出的示例,以便我们可以将其扩展到列表该代码有什么问题?问题是该代码会引发警告。”警告消息:1:平均值。默认值(X[[1L],…):参数不是数字或逻辑的:返回NA 2:平均值。默认值(X[[2L],…):参数不是数字或逻辑的:返回NA 3:平均值。默认值(X[[3L],…):参数不是数字或逻辑的:返回NA至少50个。这是head(df)的结果:这个解决方案提供了我想要的输出。谢谢你的支持。@user3795577没问题。很高兴知道这有帮助
 n <- 14
 aggregate(.~grp, transform(d1[sapply(d1, is.numeric)],
       grp= as.numeric(gl(nrow(d1), n, nrow(d1)))), 
              FUN=mean, na.rm=TRUE, na.action=NULL)
 #   grp X3MEHIS ACE_POT ADD_SUG_AVAIL_CHO ADD_SUG_TOT_SUG   ALA ALCOHOL
 #1   1       0       0             3.135               0 1.848       0
 #  PROTEIN_AN
 #1     24.181
 lapply(dataframe_list, function(d) aggregate(.~grp, 
       transform(d[sapply(d, is.numeric)],
            grp= as.numeric(gl(nrow(d), n, nrow(d)))),
              FUN=mean, na.rm=TRUE, na.action=NULL))