【发布时间】:2014-11-23 13:30:09
【问题描述】:
我没有在其他帖子中找到答案,如果他们处理类似的主题,我也不理解他们,因为我对 R 和一般编程都比较陌生。我正在使用以下调查输出 X(摘录):
A1B1 A1B2 A1B3 A1B4 A2B1 A2B2 A2B3 ...
-0.37014356 1.08841141 -0.126574243 -0.59169360 1.682673457 -0.427706432 -0.76091938 ...
3.03017573 1.39812421 0.243516558 -4.67181650 -0.378640756 2.039940436 -0.40785893 ...
3.50183121 1.51249433 -0.775449944 -4.23887560 -0.456911873 0.431838943 0.91108052 ...
...
我想计算前 4 个最大范围 diff(range(X[i,n:m])) 的差异(n:m 等于 1:4),第二个 4 (5:8) 和第三个 4 (9:12) 每一行 i 的列的差异X 并将结果放入具有 i 行和 3 列的第二个矩阵中。
例如对于第一行和前 4 列,它将是 1.08841141+0.59169360=1.68010501.
为此,我创建了一个新矩阵并尝试用值填充它:
newmatrix <- matrix(0,nrow(X),3)
newmatrix[1:nrow(X),1] <- for (i in (1:nrow(X))) {diff(range(X[i,1:4]))}
newmatrix[1:nrow(X),2] <- for (i in (1:nrow(X))) {diff(range(X[i,5:8]))}
newmatrix[1:nrow(X),3] <- for (i in (1:nrow(X))) {diff(range(X[i,9:12]))}
我得到输出错误:
Error in newmatrix[1:nrow(RBetas), 1] <- for (i in (1:nrow(RBetas))) { :
number of items to replace is not a multiple of replacement length
感谢您的帮助!
【问题讨论】: