有没有办法在循环中自动执行以下操作?而不是全部手写:
hour_1 <- aggregate(hour_1$freq, by=list(country=hour_1$country), FUN=sum)
hour_2 <- aggregate(hour_2$freq, by=list(country=hour_2$country), FUN=sum)
hour_3 <- aggregate(hour_3$freq, by=list(country=hour_3$country), FUN=sum)
hour_4 <- aggregate(hour_4$freq, by=list(country=hour_4$country), FUN=sum)
hour_5 <- aggregate(hour_5$freq, by=list(country=hour_5$country), FUN=sum)
hour_6 <- aggregate(hour_6$freq, by=list(country=hour_6$country), FUN=sum)
hour_7 <- aggregate(hour_7$freq, by=list(country=hour_7$country), FUN=sum)
hour_8 <- aggregate(hour_8$freq, by=list(country=hour_8$country), FUN=sum)
hour_9 <- aggregate(hour_9$freq, by=list(country=hour_9$country), FUN=sum)
hour_10 <- aggregate(hour_10$freq, by=list(country=hour_10$country),
FUN=sum)
我希望smth像一个自动占用小时数的for循环。
Thx:)
答案 0 :(得分:2)
是的,但最好的方法是使用列表和lapply
或sapply
函数代替循环。
hour.in <- mget( paste0('hour_', 1:10) )
hour.out <- lapply( hour.in, function(x) aggregate(x$freq,
by=list(country=x$country), FUN=sum) )
names(hour.out) <- paste0('hour_', 1:10)
现在所有结果都在hour.out
中,可以单独访问,也可以使用lapply
或sapply
进一步处理。