我有两个变量,我想根据第一个变量计算第二个变量的平均值。
第一个变量是时间并取100个值
第二个变量是索引。我已将第一个变量分为4个类(不等于)。 我想计算每个类/时间组的索引平均值,然后根据分组时间绘制它。
重要提示:我不想在R中使用其他包 提前致谢
time<-c(1:100)
index<-rnorm(100,0,1)
time_groups<-table(cut(time, seq(0,100,25)))
时间细胞与指数细胞有关。
如何计算每个班级的指数平均值?
结果应该是:
group index
0-25 mean index
25-50 mean index
50-75 mean index
75-100 mean index
答案 0 :(得分:1)
set.seed(1)
time <- 1:100
groups <- cut(time, breaks=c(0, 20, 50, 70, 100))
index <- rnorm(length(time))
barplot(tapply(index, groups, mean), xlab="Time group", ylab="Index mean")
答案 1 :(得分:0)
这是一个可能的答案,但对于大样本来说非常慢......如果你有更好的答案,请帮忙。
time<-c(1:100)
index<-rnorm(100,0,1)
h1<-seq(0,max(time)+25,25)
h2<-c(1:length(h1)-1)
group<-rep(NA,length(time))
for (j in 1:length(h1)){
for (i in 1:100){
if (h1[j]<=time[i] & h1[j+1]>time[i])
(group[i]<-h2[j])
}}
aggregate(index, by=list(group), mean)