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