有没有用dplyr或者>等工具简单实现的解决方法?我想在数据框中创建一个列向量,该向量将沿着部分行总和的方向进行计算。例如,前3行将跨越前两列求和,下3行将跨越下两列求和,以此类推。
例如,使用这个随机生成的数据集:
df <- data.frame(replicate(expr=rnorm(9),n = 6))
X1 | X2 | X3 | X4 | X5 | X6 |
---|---|---|---|---|---|
0.1964241 | 0.03964263 | -0.01284166 | 0.2151990 | -0.07765504 | -0.92258542 |
1.7902662 | -0.63973304 | -0.25093688 | -1.6119364 | 0.82503876 | 0.40736909 |
0.5831977 | 2.03465322 | -0.96911364 | -2.9498718 | 1.12056903 | 0.26401143 |
0.6503336 | -0.55889760 | -0.30331195 | 1.8801063 | -0.12216360 | 0.09128355 |
1.2450301 | -0.35577941 | -0.65526714 | 0.7572617 | 1.94533708 | -0.68068743 |
0.1611066 | 1.32441739 | 0.85744732 | 0.6347286 | 0.98836270 | -0.23196950 |
0.7254907 | -0.02062223 | -0.29098358 | -2.2365083 | 1.22438538 | 1.98511178 |
-0.2744802 | 1.16812643 | -0.08278120 | 0.6771291 | -0.31511761 | -0.92915936 |
0.1248361 | -0.60735712 | -0.82784469 | 0.5198143 | -0.13112286 | -0.40609023 |
要将此类操作应用于大型数据框,最直接的方法是将数据框转换为矩阵,并提取非方形块对角线。如果偏离对角线为0,则可以进行常规行求和。但是,使用diagonals软件包中的fatdiag命令(fatdiag(df, size = c(3,2))时会返回错误。请问如何解决?
Error in 1:steps : argument of length 0
In addition: Warning messages:
1: In split_vector(1:dx[1], steps = steps) :
Both steps and size parameters are NULL, setting step size to 1 (one).
2: In split_vector(1:dx[2], steps = steps) :
Both steps and size parameters are NULL, setting step size to 1 (one).
set.seed(number_of_your_choice)
。干杯。 - lovalery