簡體   English   中英

在R data.table中存儲回歸系數

[英]Store regression coefs in R data.table

我想運行回歸並將系數存儲在data.table中。 這是一個最小的例子:

library(data.table)
library(MASS)

dt <- as.data.table(iris)
dt[, c("coef1", "coef2") := rlm(Sepal.Length ~ Petal.Length)$coef]
dt

然而,它會循環輸出,因此每條線上的coef1和coef2相同,但兩個系數顯示在每一條線上。

此示例顯示了我希望它的外觀,但它不是最佳的,因為它需要運行兩次回歸:

dt <- as.data.table(iris)
dt[, `:=`("coef1"=rlm(Sepal.Length ~ Petal.Length)$coef[1], "coef2"=rlm(Sepal.Length ~ Petal.Length)$coef[2])]
dt

看起來你想按行存儲。 試試這個:

library(data.table)
library(MASS)
dt <- as.data.table(iris)
dt[, c("coef1", "coef2") := as.list(rlm(Sepal.Length ~ Petal.Length)$coef)][]
dt
# output
     Sepal.Length Sepal.Width Petal.Length Petal.Width   Species    coef1     coef2
  1:          5.1         3.5          1.4         0.2    setosa 4.300878 0.4097214
  2:          4.9         3.0          1.4         0.2    setosa 4.300878 0.4097214
  3:          4.7         3.2          1.3         0.2    setosa 4.300878 0.4097214
  4:          4.6         3.1          1.5         0.2    setosa 4.300878 0.4097214
  5:          5.0         3.6          1.4         0.2    setosa 4.300878 0.4097214
 ---                                                                               
146:          6.7         3.0          5.2         2.3 virginica 4.300878 0.4097214
147:          6.3         2.5          5.0         1.9 virginica 4.300878 0.4097214
148:          6.5         3.0          5.2         2.0 virginica 4.300878 0.4097214
149:          6.2         3.4          5.4         2.3 virginica 4.300878 0.4097214
150:          5.9         3.0          5.1         1.8 virginica 4.300878 0.4097214

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM