是否有可能在不使用循环的情况下对数据帧的每一行进行线性回归?趋势线的输出(截距+斜率)应作为新列添加到原始数据框中。
为了更清楚地表达我的意图,我准备了一个非常小的数据示例:
day1 <- c(1,3,1)
day2 <- c(2,2,1)
day3 <- c(3,1,5)
output.intercept <- c(0,4,-1.66667)
output.slope <- c(1,-1,2)
data <- data.frame(day1,day2,day3,output.intercept,output.slope)
Run Code Online (Sandbox Code Playgroud)
输入变量为day1-3;假设这些是不同商店连续 3 天的销售额。我想要做的是计算 3 行的线性趋势线,并将输出参数添加到原始表(请参阅 output.intercept + output.slope)作为新列。
该解决方案在计算时间方面应该非常高效,因为实际数据帧有许多 100k 行。
最好的,克里斯托夫
假设我有一个数据框如下(只有前3列),其中sum是例如客户用户在日期生成的收入:
user date sum sum(previous5days)
A 2013-01-01 10 0
A 2013-01-02 20 10
A 2013-01-03 10 30
A 2013-01-05 5 40
A 2013-01-06 6 45
A 2013-01-08 7 21
A 2013-01-09 4 22
A 2013-01-10 0 22
B 2013-01-06 1 0
B 2013-01-07 1 1
Run Code Online (Sandbox Code Playgroud)
现在我想计算第4列[sum(previous5days)],这是特定日期前5天(不包括实际日期)的客户用户的汇总收入.必须对每一行进行此计算.
如何在不使用循环的情况下执行此操作,这不是一个选项,因为数据大小相当大.
提前谢谢了!