【发布时间】:2018-05-12 13:07:49
【问题描述】:
有没有办法在循环中自动执行以下操作?而不是全部手写:
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)
我想要一个自动计算小时数的 for 循环。
谢谢:)
【问题讨论】:
-
请提供一些可重现的代码并更好地解释您要完成的工作
-
我会考虑使用
get()函数。你可以有一个 for 循环遍历对象名称的向量c('hour_1','hour_2',...,'hour_n'),我相信tmp <- get('hour_1')和tmp$freq, tmp$country等会实现你想要的。 -
首先将
hour_1:n放入一个包含必要列的大数据集中。rbind(hour_1, hour_2, hour_n),并为“小时”添加一列。然后你可以在大片场上做一次aggregate(freq ~ country + hour, hours, sum)。保留单独的数据集并使用get()等是一场等待发生的噩梦。 -
我想要一百万美元。
-
抱歉我的问题不清楚,我是新来在stackoverflow上发帖的。感谢您的反馈,我会尝试建议的代码并让您知道。