在R中对多个表进行操作

时间:2018-08-06 18:36:51

标签: r

我是R语言编程的新手,并且正在使用包含数百个变量和数千个观测值的庞大数据集。在这些变量中,有年龄是我主要关注的问题。我想获得年龄函数中其他变量的均值。我可以用它得到较小的桌子:

for(i in 18:84) 
{
  n<- sprintf("SortAgeM%d",i)
  assign(x=n,subset(SortAgeM,subset=(SortAgeM$AGE>=i & SortAgeM$AGE<i+1)))
}
"SortAgeM85plus"<-subset(SortAgeM,subset=(SortAgeM$AGE>=85 & SortAgeM$AGE<100))

这为我关注的每个年龄段提供了子数据集。然后,我想获取每一列的均值。每列都是对特定大脑区域体积的观察。我很想知道音量随着时间如何减少,我想知道一个给定年龄的人是否接近其平均年龄。

现在,我想再得到一行,每一列的均值。所以我尝试了这个:

for(i in 18:85) {
  addmargins((SortAgeM%d,i), margin=1, FUN= "mean")
}  

但是它没有用...我被卡住了,我对R函数还不够熟悉,无法在网上找到解决方案... 谢谢您的帮助。

维克多

帖子答案编辑:这是我最终所做的:

for(i in 18:84) 
    {
      n<- sprintf("SortAgeM%d",i)
      assign(x=n,subset(SortAgeM,subset=(SortAgeM$AGE>=i & SortAgeM$AGE<i+1)))
      Ajustment<-c(NA,NA,NA,NA,NA,NA,NA) #first variables aren't numeric
      Line1<- colMeans(item[,8:217],na.rm=TRUE)
      Line<-c(Ajustment,Ligne1)
      assign(x=n, rbind(item,Ligne))
    }

1 个答案:

答案 0 :(得分:1)

如果您只想在每一列的平均值上增加一行,则可以像这样用rbd输入df的colMeans

df_new <- rbind(df, colMeans(df))