我正在为我的数据科学课程开发一个项目。我对这个项目的质疑是“美国人的财务满意度是否依赖于前一年S& P500的年回报?”这是一项观察性研究。我已经分解了其他数据集中的信息,因此我现在有56,000个案例,其中包含年份和财务满意度的变量。从1971年到2013年,我还以百分比的形式获得了S& P500的年度回报。
我现在必须采用1971年的年度回报并将其应用于1972年的所有变量,在数据集的新列中称为(spReturns)。因此,回报将始终为年1。我是R的新手,不知道怎么做,所以我希望能得到一些帮助。如果您需要复制它,我的代码如下。
install.packages("lubridate")
install.packages("zoo")
install.packages("xts")
install.packages("Quandl")
require(Quandl)
require(lubridate)
require(zoo)
require(xts)
myData <- load(url("http://bit.ly/dasi_gss_data"))
myData <- myData
year <- gss$year
finSat <- gss$satfin
relativeTable <- data.frame(year, finSat)
relativeTable <- subset(relativeTable, year > "1988")
spReturns <- Quandl("SANDP/ANNRETS", trim_start="1970-01-11",
trim_end="2012-12-31", authcode="nwy3a_Gmd7TSS9fVirxT",
collapse="annual")
percentChange <- spReturns$"Total Return Change"
spReturns$"Year Ending" <- format((spReturns$"Year Ending"), "%Y")
spReturns$"Year Ending" <- as.numeric(spReturns$"Year Ending")
spReturns$"Year Ending" <- spReturns[,1] + 1 #the following year
答案 0 :(得分:0)
在每年添加+1以使它们与正确的变量数字匹配后,我添加了下面的代码。 R中的merge()函数使用给定的两个参数创建一个新数据集,并组织它们&#34; by.x&#34;和&#34; by.y&#34;。正如您在这种情况下所看到的,x =年,y =年结束。然后,第二行代码再创建一个数据集,仅使用对我来说很重要的变量列。
combined <- merge(relativeTable, spReturns, by.x = "year", by.y = "Year Ending")
finalResults <- data.frame(combined$year, combined$finSat, combined$percentChange)