创建for循环以计算特定年份的总和
我将一些数据写入CSV-这应该是一个可共享的链接。如果它说没有访问权限,那么就非常感谢一般的说法 我有一个超过220000个条目的数据集。在不写50多行代码的情况下,我想做的是: 有一个类别称为“fyear”,范围从1980年到2014年。对于每一年,我想取该年“收入”列的总和,然后除以该年的条目数 如果没有一个循环,它将是——例如1980年创建for循环以计算特定年份的总和,r,for-loop,R,For Loop,我将一些数据写入CSV-这应该是一个可共享的链接。如果它说没有访问权限,那么就非常感谢一般的说法 我有一个超过220000个条目的数据集。在不写50多行代码的情况下,我想做的是: 有一个类别称为“fyear”,范围从1980年到2014年。对于每一年,我想取该年“收入”列的总和,然后除以该年的条目数 如果没有一个循环,它将是——例如1980年 n80<- subset(returns, fyear=="1980") sum(n80$returns) / length(n80) 如何参考每
n80<- subset(returns, fyear=="1980")
sum(n80$returns) / length(n80)
如何参考每个会计年度的条目数量长度
现在阅读
apply
/sapply
等,看看我是否能想出这样做的方法。由于fyear是一个数值,因此很容易在该范围内迭代:
for(i in 1980:2014){
x<- subset(returns, fyear==i)
sum(x$returns) / length(x)
}
for(我在1980:2014){
x由于fyear是一个数值,因此很容易在该范围内迭代:
for(i in 1980:2014){
x<- subset(returns, fyear==i)
sum(x$returns) / length(x)
}
for(我在1980:2014){
x我能想到的一个简单方法是使用unique
。使用years我能想到的一个简单方法是使用unique
。使用years你可以用dplyr来做这件事
library(dplyr)
data %>%
group_by(fyear) %>%
summarize(mean_returns = mean(returns) )
您可以使用dplyr来实现这一点
library(dplyr)
data %>%
group_by(fyear) %>%
summarize(mean_returns = mean(returns) )
我们可以使用data.table
。将“data.frame”转换为“data.table”(setDT(data)
),按“fyear”分组,得到“returns”的平均值
library(data.table)
setDT(data)[, list(mean_returns = mean(returns)) , by = fyear]
我们可以使用data.table
。将“data.frame”转换为“data.table”(setDT(data)
),按“fyear”分组,得到“returns”的平均值
library(data.table)
setDT(data)[, list(mean_returns = mean(returns)) , by = fyear]