- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有数据
dat <- data.frame(t=1:100,y=rnorm(100),x1=rnorm(100)),x2=rnorm(100))
其中 t
给出时间点。我想根据前面的时间点在每个时间点在 x1
和 x2
上回归 y
。
我可以创建一个循环
reg <- matrix(rep(NA,3*nrow(dat),ncol=3)
for(i in 11:nrow(dat)){
reg[i,] <- coefficients(lm(y ~ x1 + x2, data=dat[1:i,]))
}
但我想知道是否有人知道矢量化它的方法,也许使用 data.table
。
最佳答案
我们可以使用非等自连接来获取你喜欢的表:
library(data.table)
setDT(dat)
# not clear if you wanted points _strictly_ before present,
# but the fix is basically clear -- just add nomatch = 0L to skip the first row
dat[dat, on = .(t <= t), allow.cartesian = TRUE]
t y x1 x2
1: 1 -0.51729096 0.1765509 1.06562278
2: 2 -0.51729096 0.1765509 1.06562278
3: 2 0.85173679 -0.7801053 0.05249113
4: 3 -0.51729096 0.1765509 1.06562278
5: 3 0.85173679 -0.7801053 0.05249113
---
5046: 100 1.03802913 -2.7042756 2.05639758
5047: 100 -1.29122593 0.9013410 0.77088748
5048: 100 0.08262791 0.4135725 0.92694074
5049: 100 -0.93397320 0.2719790 -0.26097185
5050: 100 -1.23897617 0.9008160 0.61121185
i.y i.x1 i.x2
1: -0.5172910 0.1765509 1.06562278
2: 0.8517368 -0.7801053 0.05249113
3: 0.8517368 -0.7801053 0.05249113
4: -0.5080630 -2.0701757 -1.01573263
5: -0.5080630 -2.0701757 -1.01573263
---
5046: -1.2389762 0.9008160 0.61121185
5047: -1.2389762 0.9008160 0.61121185
5048: -1.2389762 0.9008160 0.61121185
5049: -1.2389762 0.9008160 0.61121185
5050: -1.2389762 0.9008160 0.61121185
(有点困惑,但在 t <= t
中,LHS t
指的是 LHS dat
,RHS t
指的是 RHS dat
)
从这里我们只需要按 t
分组并运行回归:
dat[dat, on = .(t <= t), allow.cartesian = TRUE
][ , as.list(coef(lm(y ~ x1 + x2))), keyby = t
# (only adding head here to limit output)
][ , head(.SD)]
# t (Intercept) x1 x2
# 1: 1 -0.5172910 NA NA
# 2: 2 -0.2646369 -1.43105510 NA
# 3: 3 9.1879448 9.96212179 -10.7580819
# 4: 4 -0.3504059 -0.36654096 0.4523271
# 5: 5 -0.1681879 -0.06670494 0.3553107
# 6: 6 1.2108223 1.04082291 -0.6947567
关于r - "cumulative"回归向量化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49531250/
我想像以前使用 Tableau 软件一样使用功率查询进行运行总计。有没有人有想法,提前致谢! 最佳答案 为迟到的答案道歉 - 这个挑战已经困扰了我好几个月了。 论坛和博客上很少有解决方案,但它们似乎都
我有数据 dat <- data.frame(t=1:100,y=rnorm(100),x1=rnorm(100)),x2=rnorm(100)) 其中 t 给出时间点。我想根据前面的时间点在每个时
是否有内置的 pandas 方法来查找两个 pandas 系列之间的累积相关性? 它应该做的是有效地修复 pandas.rolling_corr(data, window) 中窗口的左侧,以便窗口的宽
我有一个连接到 Google Data Studio 的 MySQL 数据库,其中包含“日期”和“新用户”列。 “新用户”列显示每天的新用户数。 我想绘制一张相对于日期的累计用户数的图表。这在电子表格
假设我有一个Java IntStream,是否可以将其转换为具有累积和的IntStream?例如,以 [4, 2, 6, ...] 开头的流应转换为 [4, 6, 12, ...]。 更一般地说,应该
我有一个这样的数组: [30, 10, 4, 3, 3] 我需要将其转换为一个 cumulative% 数组,每个值都是到那里的所有值的总和除以数组中所有值的总和。 在本例中,总数为 50。因此,第一
假设我有一个 Java IntStream,是否可以将其转换为具有累积和的 IntStream?例如,以 [4, 2, 6, ...] 开头的流应转换为 [4, 6, 12, ...]。 更一般地说,
我有一个数据框如下。按time列排序。 输入 - df = data.frame(time = 1:20, grp = sort(rep(1:5,4)),
我是 R 的新手。我不确定如何在 R 中执行以下功能。我可以在 excel 中执行此操作。但无法在 R 中完成。有人可以帮助我吗? 我想得到计数器值达到64后的累加和, 以下是我的数据, x 57 5
我的目标是按日期累计注册用户数 这是我的mysql sql SELECT MONTH( DATE ) AS `month`, COUNT(userid) FROM `stats` WHERE `u
我有一个按月-年字符串属性排序的对象列表。我的对象类定义看起来像 Public class Obj{ String year; Long membercount; Long n
我有一个像这样的向量 v <- c(76, 31, 33, 7) 并且需要计算其导致的“累积差” cumdiff <- c(45, 12, 5) 这是 76 - 31 = 45 和 45 - 33 =
假设我有一个奖项的 SQL 表,其中包含日期和金额字段。我需要生成一个表格,其中包含一系列连续日期、每天奖励的金额以及运行(累计)总数。 Date Amount_Total Amo
我们有如下数据框: +------+--------------------+ | Flag | value| +------+--------------------+
我正在计算“第一”位置总计列(下表)的值,并希望使用多个条件来执行此操作。 我希望总“第一”位置能够反射(reflect)特定运动员赢得比赛的次数(截至特定日期)。 例如...见下文,当运动员 = S
我正在计算“第一”位置总计列(下表)的值,并希望使用多个条件来执行此操作。 我希望总“第一”位置能够反射(reflect)特定运动员赢得比赛的次数(截至特定日期)。 例如...见下文,当运动员 = S
我有像这样的一系列累积值: 1821, 2015-01-26 22:14:42+02:00, 24574.7 1822, 2015-01-26 22:15:05+02:00, 24574.7 1823
我试图在二叉索引树 (BIT) 中找到具有给定累积频率的索引。 我能够在 O(log(n)*log(n)) 中解决这个问题,方法是借助二分搜索和计算任何索引处的累积频率的函数来实现它。 但我想在 O(
我是 Python Pandas 的新手,因此无法找到与许多普通 SQL 操作等效的句法。给定玩具场景: id rank ts alive 1 1 201
我想提高我的谷歌页面速度结果。我发现我的主要问题之一是 Cumulative Layout Shift。我意识到这个问题是由 cookie 和促销弹出窗口引起的。 您有任何解决此 google 页面速
我是一名优秀的程序员,十分优秀!