Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
创建for循环以计算特定年份的总和_R_For Loop - Fatal编程技术网

创建for循环以计算特定年份的总和

创建for循环以计算特定年份的总和,r,for-loop,R,For Loop,我将一些数据写入CSV-这应该是一个可共享的链接。如果它说没有访问权限,那么就非常感谢一般的说法 我有一个超过220000个条目的数据集。在不写50多行代码的情况下,我想做的是: 有一个类别称为“fyear”,范围从1980年到2014年。对于每一年,我想取该年“收入”列的总和,然后除以该年的条目数 如果没有一个循环,它将是——例如1980年 n80<- subset(returns, fyear=="1980") sum(n80$returns) / length(n80) 如何参考每

我将一些数据写入CSV-这应该是一个可共享的链接。如果它说没有访问权限,那么就非常感谢一般的说法

我有一个超过220000个条目的数据集。在不写50多行代码的情况下,我想做的是:

有一个类别称为“fyear”,范围从1980年到2014年。对于每一年,我想取该年“收入”列的总和,然后除以该年的条目数

如果没有一个循环,它将是——例如1980年

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]