【发布时间】:2018-01-28 05:43:31
【问题描述】:
我的数据有点像这样(当然还有更多行):
Age Work Zone SomeNumber
26 1 2.61
32 4 8.42
41 2 9.71
45 2 4.14
64 3 6.04
56 1 5.28
37 4 7.93
我想获得每个年龄或低于每个年龄的每个区域的最大 SomeNumber。 SomeNumber 随着年龄的增长而增加,所以我预计 2 区中 32 岁以下的最高 SomeNumber 是 31 岁的人,但实际上可能是 27 岁的人。
为此,我编写了一个嵌套的 for 循环:
for(i in zonelist){
temp = data[data$zone==i,]
for(j in 1:max(data$age)){
temp.lessequal=c(temp.lessequal,max((temp[temp$Age<=j,])$SomeNumber))
}
#plot temp.lessequal or save it at this point
}
这当然非常慢。我怎样才能更快地做到这一点?我查看了一次按两列排序的 order 函数,但这并不能让我取每个组的最大值。
【问题讨论】:
-
@Sathish 如果我理解正确,这个问题对我来说似乎并不重复。可能是我错了。
-
我的回答与上面发布的链接中的解决方案之一完全相同
标签: r loops dataframe categories