小编kpe*_*ton的帖子

使用R在循环中通过协变量循环

我正在尝试运行96次回归并将结果保存为96个不同的对象.为了使事情复杂化,我希望模型中某个协变量的下标也改变96次.我差点解决了这个问题,但不幸的是我遇到了问题.到目前为止的代码是,

for(i in 1:96){

  assign(paste("z.out", i,sep=""), lm(rMonExp_EGM~ TE_i + Month2+Month3+Month4+Month5+Month6+Month7+Month8+Month9+
  Month10+Month11+Month12+Yrs_minus_2004 + 
  as.factor(LGA),data=Pokies))

}
Run Code Online (Sandbox Code Playgroud)

这适用于对象创建方(例如我有z.out1 - z.out96),但我似乎无法让协变量上的下标也改变.

我在数据集中有96个变量叫做TE_1,TE_2 ...... TE_96.因此,TE_上的下标,"i"需要改变以对应于我创建的每个对象.也就是说,z.out1应该保存此模型的结果:

z.out1 <- lm(rMonExp_EGM~ TE_1 + Month2+Month3+Month4+Month5+Month6+Month7+Month8+Month9+
  Month10+Month11+Month12+Yrs_minus_2004 + as.factor(LGA),data=Pokies)
Run Code Online (Sandbox Code Playgroud)

并且z.out96应该是:

z.out96 <- lm(rMonExp_EGM~ TE_96+ Month2+Month3+Month4+Month5+Month6+Month7+Month8+Month9+
  Month10+Month11+Month12+Yrs_minus_2004 + as.factor(LGA),data=Pokies)
Run Code Online (Sandbox Code Playgroud)

希望这是有道理的.我很感激任何提示/建议.

loops for-loop regression r

5
推荐指数
1
解决办法
1778
查看次数

使用data.frame中的相邻列创建滞后

我有一个大型数据集,如下所示:

set.seed(1234)
id <- c(3,3,3,5,5,7)
amount <- c(24,48,60,84,96,175)
start <- as.Date(c("2006-01-01","2009-12-09","2010-01-01","2006-04-24", "2009-12-09","2009-05-01"))
end <- as.Date(c("2010-01-01","2010-01-01","2010-01-01","2009-12-09","2009-12-09", "2009-05-01"))               
noise <-rnorm(6)
test <- data.frame(id,amount,start,end,noise)            

  id amount      start        end      noise
   3     24 2006-01-01 2010-01-01  0.4978505
   3     48 2009-12-09 2010-01-01 -1.9666172
   3     60 2010-01-01 2010-01-01  0.7013559
   5     84 2006-04-24 2009-12-09 -0.4727914
   5     96 2009-12-09 2009-12-09 -1.0678237
   7    175 2009-05-01 2009-05-01 -0.2179749
Run Code Online (Sandbox Code Playgroud)

但它需要看起来像这样:

  id amount      start        end      noise   switch
   3     24 2006-01-01 2009-12-09  0.4978505        0
   3     48 2009-12-09 2010-01-01 -1.9666172        1
   3     60 2010-01-01 2010-01-01  0.7013559 …
Run Code Online (Sandbox Code Playgroud)

replace r time-series bigdata

3
推荐指数
1
解决办法
457
查看次数

更改 data.table 中列名大小写的最有效方法是什么?

有时,在合并之前更改列名的大小写以保持一致性很有用。使用 a 时,data.frame这非常简单(如此处所述;尽管相同的解决方案适用于“data.table”,但它会引发警告。例如,

ran <- rep(34,50)
dom <- rep("cat",50)
table <- rep("pig", 50)

DT <- data.table(ran,dom,table); head(DT)
   ran dom table
1:  34 cat   pig
2:  34 cat   pig
3:  34 cat   pig
4:  34 cat   pig
5:  34 cat   pig
6:  34 cat   pig

##the data.frame way

names(DT) <- toupper(names(DT))

##the error 
Warning message:
In `names<-.data.table`(`*tmp*`, value = c("RAN", "DOM", "TABLE" :
  The names(x)<-value syntax copies the whole table. This is due to <- in R …
Run Code Online (Sandbox Code Playgroud)

r bigdata data.table

3
推荐指数
1
解决办法
1409
查看次数

标签 统计

r ×3

bigdata ×2

data.table ×1

for-loop ×1

loops ×1

regression ×1

replace ×1

time-series ×1