楼主: xingzhaoh
7062 16

[问答] 如何分层求均值 [推广有奖]

11
yywan0913 在职认证  发表于 2014-4-18 10:47:37
xingzhaoh 发表于 2014-4-18 10:35
谢谢你,你可以详细的指点我一下,我正好学习一下
非常感谢
#dim(,,)三个参数分别表示行  列  维数,用重复表示维数,行表示重复,列表示年龄


######names没定义,系号187(1)的问题刚   可以了
#这个是每个重复的每个系号的每一年的胸径平均值。
  1. pp= array(0,dim=c(length(unique(t[,2])),length(unique(t[,3])),length(unique(t[,1]))))
  2. dimnames(pp)=list(unique(t[,2]),unique(t[,3]))
  3. for(i in unique(t[,1])){for(j in unique(t[,3])){for( k in unique(t[,2])){pp[k,j,i]=mean(t[,4][t[,2][t[,3][t[,1]==i]==j]==k])}}}
复制代码
是什么给了你自信

12
yywan0913 在职认证  发表于 2014-4-18 10:52:09
xingzhaoh 发表于 2014-4-18 10:39
这个数据data中是不是只有重复和胸径这两列呀?
data=read.table("分层计算xlsx",sep="\t",header=T)


由于有两行胸径无值,不知道是什么情况,我先默认为0了,真实情况还是无值的话,那就忽视
是什么给了你自信

13
xingzhaoh 发表于 2014-4-18 11:05:23
yywan0913 发表于 2014-4-18 10:52
data=read.table("分层计算xlsx",sep="\t",header=T)
树高和材积的怎么算呢,大侠,求您把这个计算的过程详细给我介绍一下:
1重复中怎么计算胸径树高和材积的每个年龄的均值
2重复和系号中怎么计算胸径树高和材积的每个年龄的均值
在详细一点,我可以很好的学习一下?

14
xingzhaoh 发表于 2014-4-18 11:08:44
yywan0913 发表于 2014-4-18 10:52
data=read.table("分层计算xlsx",sep="\t",header=T)
没有值就先看做为零

15
yywan0913 在职认证  发表于 2014-4-18 11:10:46
xingzhaoh 发表于 2014-4-18 11:05
树高和材积的怎么算呢,大侠,求您把这个计算的过程详细给我介绍一下:
1重复中怎么计算胸径树高和材积的 ...
t[,1]表示重复列,t[,2]表示序号,t[,3]表示年龄,t[,4]表示胸径,t[,5]表示树高,t[,6]表示材积
刚计算的问题一和问题二的胸径
计算树高和材积,只需要把刚才的两段代码的t[,4]改成t[,5]和t[,6]就可以了
是什么给了你自信

16
xingzhaoh 发表于 2014-4-18 11:13:08
yywan0913 发表于 2014-4-18 11:10
t[,1]表示重复列,t[,2]表示序号,t[,3]表示年龄,t[,4]表示胸径,t[,5]表示树高,t[,6]表示材积
刚计算 ...
谢谢了,可以让我好好消化两天了

17
yywan0913 在职认证  发表于 2014-4-18 13:28:57
  1. #有点慢,仍然是六列,前三列跟你源文件每列意思一样,后三列为其分别的结果  
  2.   t=read.table("",sep="\t",header=T)
  3.   s=matrix(,ncol=6,nrow=length(unique(t[,1]))*length(unique(t[,2]))*length(unique(t[,3])))  
  4. m=0
  5. for(i in unique(t[,1])){for(j in unique(t[,2])){for(k in unique(t[,3])){m=m+1;s[m,1]=i;s[m,2]=j;s[m,3]=k;s[m,4]=mean(t[,4][t[,3][t[,2][t[,1]==i]==j]==k]);s[m,5]=mean(t[,5][t[,3][t[,2][t[,1]==i]==j]==k]);s[m,6]=mean(t[,6][t[,3][t[,2][t[,1]==i]==j]==k])}}}
  6. write.table(s,"new.data",sep="\t",col.names=F,row.names=F,quote=F)
  7. #第二问的终表格结果
  8. #NAN表示无值,也就是0/0,可以舍掉。
复制代码
已有 1 人评分学术水平 收起 理由
jmpamao + 1 一环扣一环的,不知道用DATA.TABLE 可不可以.

总评分: 学术水平 + 1   查看全部评分

是什么给了你自信

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-22 03:14