使用向量作为新变量的输入

chr*_*orn 1 loops r

我的数据框是SPData,其中包括过去25年(每年约250天)标准普尔500指数的日期,开盘价,收盘价和成交量.此外,我有SPData$Year一个简单的向量,从1990年到2015年,数据存储日期列的年份.

library(dplyr)
SPData1990 <- filter(SPData, Year == 1990)
Run Code Online (Sandbox Code Playgroud)

结果是一个数据框,有大约250个观测值,一个是1990年的每个交易日.我已经做了25年.

有没有办法创建一个公式,将每年对应的所有其他数据保存为新数据框(SPData1991,SPData 1992,SPData1993等)?我试图通过对应于公式的for(i in years)循环进行思考years <- unique(SPData$Year, FALSE),但是我对编程一般都不熟悉,无法解决这个问题.

谢谢

C8H*_*4O2 5

感谢@ user20650 ......

# reproducible example!
set.seed(123)
year_range = 1990:2014
SPData <- data.frame(Year=sample(year_range,1000,replace=TRUE),
                     Sales=runif(1000,min=100,max=200) )

# split the list into data frames on "SPDataYYYY" and store in global environment
list2env(split(SPData, paste0("SPData",SPData$Year)),
         envir = .GlobalEnv)
ls()
# [1] "SPData"     "SPData1990" "SPData1991" "SPData1992" "SPData1993" "SPData1994"
# [7] "SPData1995" "SPData1996" "SPData1997" "SPData1998" "SPData1999" "SPData2000"
# [13] "SPData2001" "SPData2002" "SPData2003" "SPData2004" "SPData2005" "SPData2006"
# [19] "SPData2007" "SPData2008" "SPData2009" "SPData2010" "SPData2011" "SPData2012"
# [25] "SPData2013" "SPData2014" "year_range"
Run Code Online (Sandbox Code Playgroud)