根据R中的第一个变量的第二个变量的平均值

时间:2014-02-06 19:25:09

标签: r

我有两个变量,我想根据第一个变量计算第二个变量的平均值。

第一个变量是时间并取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

2 个答案:

答案 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")

enter image description here

答案 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)