【发布时间】:2021-06-24 18:34:11
【问题描述】:
我正在尝试在以下数据集的所有可用组之间找到线性回归。
library(data.table)
dt <- data.table(time = c(rep(rep(1:100, times = 1), 4), rep(1:30, times = 1)),
group = c(rep(c("a","b","c","d"), each = 100), rep("e", 30)),
value = rnorm(430))
dt[]
time group value
1: 1 a 0.1625954
2: 2 a -1.2288462
3: 3 a -0.1628570
4: 4 a 1.0597886
5: 5 a -1.1828334
---
426: 26 e -1.3762654
427: 27 e 0.3761436
428: 28 e -1.6982330
429: 29 e 0.1940263
430: 30 e -0.4631258
输出应该是这样的
group1 group2 regression
a b 1.2
a c 0.3
b c 0.5
d a 4.3
...
我正在寻找仅使用 data.table 库的解决方案。
- 应该找到所有组组合的线性回归。这包括案例
a~b和b~a,因为这些案例的回归将有所不同。 - 由于某些组的大小不同,因此应使用时间变量来查找任何组之间的共同行。
- 解决方案需要找到所有组的组合。
【问题讨论】:
-
我猜你只是在寻找 a, b 而不是 b, a 对吧?
-
我正在寻找 (a,b) 和 (b,a),因为每个回归都会产生不同的结果。
-
还有一点,这些组的大小可能不同。 data.table 将类似于 -
dt <- data.table(group = c(rep(1:4, 100), rep(5, 30)), a = rnorm(430)) -
感谢@Arun 处理
li < 0的情况,请发布此答案。 -
当然,我会尝试
foreach。感谢您的提示!
标签: r data.table regression