【发布时间】:2018-07-28 01:13:36
【问题描述】:
我是 R 新手,正在尝试找出一种方法来对我的数据集进行子集化,而无需为每个子集编写一行代码。我的数据集有多年,我试图每年都进行子集化。 “年份”列有 5 个不同的年份 2017、2016、2015、2014、2013。我目前做的是这个(数据集是我的原始数据):
Year17 <- dataset[dataset$Year=="2017",]
Year16 <- dataset[dataset$Year=="2016",]
Year15 <- dataset[dataset$Year=="2015",]
Year14 <- dataset[dataset$Year=="2014",]
Year13 <- dataset[dataset$Year=="2013",]
我认为有一些方法可以循环通过,但我无法弄清楚如何。
然后我也在寻找一种方法来提取四分位数、众数、中位数和标准差。我目前这样做:
Year17Finance <- quantile(Year17$Financials, probs= c(0.10, 0.25, 0.50, 0.75, 0.90), na.rm = T)
Year17Sales <- quantile(Year17$Sales, probs= c(0.10, 0.25, 0.50, 0.75, 0.90), na.rm = T)
mean(Year17$Financials, na.rm = T)
median(Year17$Financials,na.rm = T)
sd(Year17$Financials, na.rm = T)
我的最终目标是能够上传数据文件并通过代码运行它,然后输出给定变量的四分位数、均值、中位数和标准差。
任何指导将不胜感激。谢谢
【问题讨论】:
-
您可以使用
lapply创建一个data.frames 列表,而不是在globalenv 中有这么多对象。类似lapply(as.character(2013:2017), function(y) dataset[dataset$Year == y, ])。 -
看拆分功能。这将拆分您的数据框并将结果放入列表中以供进一步分析。
标签: r