R 循环子集集

R 循环子集集,r,R,我是R新手,正在尝试找出一种方法来对我的数据集进行子集划分,而无需为每个子集编写一行代码。我的数据集有好几年,我正在尝试将每一年的数据子集。“年”列有5个不同的年份20172016201520142013。我目前所做的是(数据集是我的原始数据): Year17我假设您正在创建每个子集数据框,以便您可以计算每年的汇总统计数据?对于这种类型的问题,我喜欢data.table包,它使您能够跨组列拆分计算: library(data.table) dataset <- as.data.table(

我是R新手,正在尝试找出一种方法来对我的数据集进行子集划分,而无需为每个子集编写一行代码。我的数据集有好几年,我正在尝试将每一年的数据子集。“年”列有5个不同的年份20172016201520142013。我目前所做的是(数据集是我的原始数据):


Year17我假设您正在创建每个子集数据框,以便您可以计算每年的汇总统计数据?对于这种类型的问题,我喜欢data.table包,它使您能够跨组列拆分计算:

library(data.table)
dataset <- as.data.table(dataset)

financial_summary_stats <- dataset[, list(
    q10 = quantile(Financials, 0.10, na.rm=TRUE),
    q25 = quantile(Financials, 0.25, na.rm=TRUE),
    q50 = quantile(Financials, 0.50, na.rm=TRUE),
    mean = mean(Financials, na.rm=TRUE),
    q75 = quantile(Financials, 0.75, na.rm=TRUE),
    q90 = quantile(Financials, 0.90, na.rm=TRUE)
  ), by = Year]
库(data.table)

dataset我假设您正在创建每个子集数据框,以便可以计算每年的汇总统计数据?对于这种类型的问题,我喜欢data.table包,它使您能够跨组列拆分计算:

library(data.table)
dataset <- as.data.table(dataset)

financial_summary_stats <- dataset[, list(
    q10 = quantile(Financials, 0.10, na.rm=TRUE),
    q25 = quantile(Financials, 0.25, na.rm=TRUE),
    q50 = quantile(Financials, 0.50, na.rm=TRUE),
    mean = mean(Financials, na.rm=TRUE),
    q75 = quantile(Financials, 0.75, na.rm=TRUE),
    q90 = quantile(Financials, 0.90, na.rm=TRUE)
  ), by = Year]
库(data.table)

数据集您可以使用
lappy
创建data.frames列表,而不是在globalenv中有这么多对象。类似于
lappy(as.character(2013:2017),function(y)dataset[dataset$Year==y,])
.Related:.查看拆分函数。这将分割数据帧并将结果放入列表中以进行其他分析。您可以使用
lappy
创建数据帧列表,而不是在globalenv中有这么多对象。类似于
lappy(as.character(2013:2017),function(y)dataset[dataset$Year==y,])
.Related:.查看拆分函数。这将分割您的数据框,并将结果放入列表中进行额外分析。我感谢您的帮助!最后,我使用了dplyr:数据集%>%group_by(Year)%%>%SUMMARY(平均值(金融类,na.rm=T)、sd(金融类,na.rm=T)、分位数(金融类,0.10,na.rm=T)、分位数(金融类,0.25,na.rm=T)、分位数(金融类,0.50,na.rm=T)、分位数(金融类,0.75,na.rm=T),分位数(金融,0.90,na.rm=T))我感谢你的帮助!最后,我使用了dplyr:数据集%>%group_by(Year)%%>%SUMMARY(平均值(金融类,na.rm=T)、sd(金融类,na.rm=T)、分位数(金融类,0.10,na.rm=T)、分位数(金融类,0.25,na.rm=T)、分位数(金融类,0.50,na.rm=T)、分位数(金融类,0.75,na.rm=T),分位数(财务数据,0.90,na.rm=T))
library(data.table)
dataset <- as.data.table(dataset)

financial_summary_stats <- dataset[, list(
    q10 = quantile(Financials, 0.10, na.rm=TRUE),
    q25 = quantile(Financials, 0.25, na.rm=TRUE),
    q50 = quantile(Financials, 0.50, na.rm=TRUE),
    mean = mean(Financials, na.rm=TRUE),
    q75 = quantile(Financials, 0.75, na.rm=TRUE),
    q90 = quantile(Financials, 0.90, na.rm=TRUE)
  ), by = Year]