首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >试图以一种使时间序列更容易完成的形式获取数据

试图以一种使时间序列更容易完成的形式获取数据
EN

Stack Overflow用户
提问于 2015-04-18 20:43:12
回答 1查看 37关注 0票数 0

我从一个公共数据库中提取了四个数据集。每个都是xls或xlsx格式。我已经把它们转换成数据帧,并清理了前两年的数据,这些数据有许多无关的字段。现在所有的数据都是相同的格式,我试图弄清楚如何将它处理成一个文档,这样我就可以在一段时间内建立线性模型,以求增长的速度或比例。

这是我的GitHub链接到我的实际当前进程。如果你想看一看,提出建议,我会非常感激。https://github.com/benjaminmbaker/Data

下面是我如何复制数据当前格式化方式的一个近乎传真的方法:

代码语言:javascript
复制
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的数量,我还考虑为高于零的值创建一个虚拟变量,然后在上面运行这些函数。

代码语言:javascript
复制
rbind(x2006,x2008,x2010,x2012)

我对这件事很陌生,所以我知道我犯了很多错误。我会继续阅读和工作,但任何方向都将不胜感激!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-23 23:37:56

您需要使用yearsi从对象中粘贴您希望在循环中显示的值。这会给你你想要的:

代码语言:javascript
复制
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_df
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29722633

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档