我从一个公共数据库中提取了四个数据集。每个都是xls或xlsx格式。我已经把它们转换成数据帧,并清理了前两年的数据,这些数据有许多无关的字段。现在所有的数据都是相同的格式,我试图弄清楚如何将它处理成一个文档,这样我就可以在一段时间内建立线性模型,以求增长的速度或比例。
这是我的GitHub链接到我的实际当前进程。如果你想看一看,提出建议,我会非常感激。https://github.com/benjaminmbaker/Data
下面是我如何复制数据当前格式化方式的一个近乎传真的方法:
x <- list()
years <- c(2006,2008,2010,2012)
for (i in 1:length(years)) {
UniqueID <- 1:10 # <- Not all numeric - Kept as character vector
Name <- LETTERS[seq( from = 1, to = 10 )]
Entity_Type <- factor("This","That")
Data1 <- rnorm(10)
Data2 <- rnorm(10)
Data3 <- rnorm(10)
Data4 <- rnorm(10)
Year <- years[i]
x[[i]] <- data.frame(UniqueID, Name, Entity_Type, Data1, Data2, Data3, Data4, Year)
}
list2env(setNames(x, paste0('x', years)), envir=.GlobalEnv)现在我有了四个数据集,我重新绑定它们,使它们都在同一个集合中,这样我就可以在速率和比例上做OLS或GLM了。由于GitHub中的代码在我的数据集中创建了0的数量,我还考虑为高于零的值创建一个虚拟变量,然后在上面运行这些函数。
rbind(x2006,x2008,x2010,x2012)我对这件事很陌生,所以我知道我犯了很多错误。我会继续阅读和工作,但任何方向都将不胜感激!
发布于 2015-04-23 23:37:56
您需要使用yearsi从对象中粘贴您希望在循环中显示的值。这会给你你想要的:
my_df <- data.frame() # make an empty data frame to fill
years <- c(2006,2008,2010,2012)
for (i in 1:length(years)) {
UniqueID <- 1:10
Name <- LETTERS[seq( from = 1, to = 10 )]
Entity_Type <- rep(c("This","That"), times=5) # do you want these to alternate?
Data1 <- rnorm(10)
Data2 <- rnorm(10)
Data3 <- rnorm(10)
Data4 <- rnorm(10)
Year <- years[i]
temp_df <- data.frame(UniqueID, Name, Entity_Type, Data1, Data2, Data3, Data4, Year)
my_df <- rbind(my_df, temp_df)
}
my_dfhttps://stackoverflow.com/questions/29722633
复制相似问题