小编new*_*bie的帖子

如何评估data.table中具有不同条件的列

鉴于data.table如下:

library(data.table)
set.seed(100)
dt <- data.table(a=c(1:3, 1), b = c(1,0,1, 3), c = c(1,2,1,3), x = rnorm(4), y = rnorm(4), d = c(4, 6, 6, 7)) 
Run Code Online (Sandbox Code Playgroud)

dt 返回,

   a b c           x          y d
1: 1 1 1 -0.50219235  0.1169713 4
2: 2 0 2  0.13153117  0.3186301 6
3: 3 1 1 -0.07891709 -0.5817907 6
4: 1 3 3  0.88678481  0.7145327 7
Run Code Online (Sandbox Code Playgroud)

列"a","b"和"c"中等于3的任何数字都将为TRUE

此外,列"d"中等于6的任何数字都将为TRUE

如何dt使用列名称("a","b","c"和"d")评估内部

所以我的回报是:

       a     b     c           x          y     d
1: FALSE FALSE FALSE -0.50219235  0.1169713 …
Run Code Online (Sandbox Code Playgroud)

r data.table

7
推荐指数
1
解决办法
648
查看次数

R中的分数响应回归

我正在尝试对响应变量介于 0 和 1 之间的数据进行建模,因此我决定在 R 中使用分数响应模型。根据我目前的理解,分数响应模型类似于逻辑回归,但它使用了 quasi-确定参数的似然法。我不确定我是否理解正确。

到目前为止,我尝试的是frmfrom 包frmglm以下数据,与此OP相同

library(foreign)
mydata <- read.dta("k401.dta")
Run Code Online (Sandbox Code Playgroud)

此外,我遵循了这个OPglm使用的程序。但是,对于相同的数据集frm,它返回不同的 SE

library(frm)
y <- mydata$prate
x <- mydata[,c('mrate', 'age', 'sole', 'totemp1')]
myfrm <- frm(y, x, linkfrac = 'logit')
Run Code Online (Sandbox Code Playgroud)

frm 返回,

*** Fractional logit regression model ***

           Estimate Std. Error t value Pr(>|t|)    
INTERCEPT  1.074062   0.048902  21.963    0.000 ***
mrate      0.573443   0.079917   7.175    0.000 ***
age        0.030895   0.002788  11.082    0.000 ***
sole …
Run Code Online (Sandbox Code Playgroud)

r glm

7
推荐指数
1
解决办法
6273
查看次数

如何在data.table的每一行中应用函数

假设我有以下内容

dt <- data.table(a=c(T,T,F,F), b= c(T,F,T,F))
Run Code Online (Sandbox Code Playgroud)

返回,

       a     b
1:  TRUE  TRUE
2:  TRUE FALSE
3: FALSE  TRUE
4: FALSE FALSE
Run Code Online (Sandbox Code Playgroud)

我曾尝试使用function(x) min(which(x))来确定TRUE中每一行的第一行dt,但没有奏效。我期望的结果将是

       a     b index
1:  TRUE  TRUE     1
2:  TRUE FALSE     1
3: FALSE  TRUE     2
4: FALSE FALSE  9999
Run Code Online (Sandbox Code Playgroud)

,其中索引列表示第一个的位置,TRUE当该行仅包含 FALSE 时使用 9999

仅供参考:在真实数据中,我有大约 50 列包含 TRUE 和 FALSE

你能给我建议吗?

r data.table

6
推荐指数
1
解决办法
1801
查看次数

使用线性回归对data.table进行预测

重新发布到这篇文章,我创建了一个在data.table包上进行线性回归的例子,如下所示:

## rm(list=ls()) # anti-social
library(data.table)
set.seed(1011)
DT = data.table(group=c("b","b","b","a","a","a"),
                v1=rnorm(6),v2=rnorm(6), y=rnorm(6))
setkey(DT, group)
ans <- DT[,as.list(coef(lm(y~v1+v2))), by = group]
Run Code Online (Sandbox Code Playgroud)

返回,

   group (Intercept)        v1        v2
1:     a    1.374942 -2.151953 -1.355995
2:     b   -2.292529  3.029726 -9.894993
Run Code Online (Sandbox Code Playgroud)

我能够获得lm函数的系数.

我的问题是: 我们如何直接用于predict新的观察?如果我们有新的观察结果如下:

new <- data.table(group=c("b","b","b","a","a","a"),v1=rnorm(6),v2=rnorm(6))
Run Code Online (Sandbox Code Playgroud)

我试过了:

setkey(new, group)
DT[,predict(lm(y~v1+v2), new), by = group]
Run Code Online (Sandbox Code Playgroud)

但它给我带来了奇怪的答案:

    group         V1
 1:     a  -2.525502
 2:     a   3.319445
 3:     a   4.340253
 4:     a   3.512047
 5:     a   2.928245
 6:     a   1.368679 …
Run Code Online (Sandbox Code Playgroud)

r predict lm data.table

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

如何在R中删除data.table中的所有重复行

假设我们有

library(data.table)    
dt <- data.table(Date = c(201405,201405,201504,201505, 201505,201505), ID = c(500,500,600,700,500, 700), INC = c(20,30,50,75,80,90))
Run Code Online (Sandbox Code Playgroud)

返回,

     Date  ID INC
1: 201405 500  20
2: 201405 500  30
3: 201504 600  50
4: 201505 700  75
5: 201505 500  80
6: 201505 700  90
Run Code Online (Sandbox Code Playgroud)

我要删除同一日期中的所有ID。回报应该是

     Date  ID INC
1: 201504 600  50
2: 201505 500  80
Run Code Online (Sandbox Code Playgroud)

你能建议吗?

r duplicates data.table

4
推荐指数
1
解决办法
850
查看次数

使用data.table计算新列

我有以下数据

set.seed(5)
dt <- data.table(ID=letters, x = rnorm(26), y = rnorm(26), z = c(rep(15, 13), rep(20,13)))
Run Code Online (Sandbox Code Playgroud)

返回,

    ID           x           y  z
 1:  a -0.84085548  1.41858907 15
 2:  b  1.38435934  1.49877383 15
 3:  c -1.25549186 -0.65708209 15
 4:  d  0.07014277 -0.85279544 15
 5:  e  1.71144087  0.31591504 15
 6:  f -0.60290798  1.10969417 15
 7:  g -0.47216639  2.21546057 15
 8:  h -0.63537131  1.21710364 15
 9:  i -0.28577363  1.47922179 15
10:  j  0.13810822  0.95157383 15
11:  k  1.22763034 -1.00953265 15
12:  l -0.80177945 -2.00047274 …
Run Code Online (Sandbox Code Playgroud)

r data.table

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

标签 统计

r ×6

data.table ×5

duplicates ×1

glm ×1

lm ×1

predict ×1