我无法将顺序结果的for循环保存在R中?
我的我无法将顺序结果的for循环保存在R中?,r,for-loop,R,For Loop,我的for循环算法的大小总是不同的,因为seq的输出不同,因此,我无法保存结果。我该怎么做?我卡在mat[?,?]循环的一部分,请看下面的示例。我该怎么做 d<-data.frame(L1=c(1,6,8), L2=c(3,14,22)) mat<-matrix(c(0),15,2) for (i in 1:nrow(d)) { x1<-seq(d$L1[i],d$L2[i],2) x1 for (k in seq_along(x1[-1]))
for
循环算法的大小总是不同的,因为seq
的输出不同,因此,我无法保存结果。我该怎么做?我卡在mat[?,?]
循环的一部分,请看下面的示例。我该怎么做
d<-data.frame(L1=c(1,6,8), L2=c(3,14,22))
mat<-matrix(c(0),15,2)
for (i in 1:nrow(d)) {
x1<-seq(d$L1[i],d$L2[i],2)
x1
for (k in seq_along(x1[-1])) {
L1<- x1[k]
L2<- x1[k+1]
mat[?,]<- c(L1+L2,L1-L2)
}
}
对于
i使用apply
尝试此方法,它将:
do.call(rbind, apply(d, 1, function(x) {
x1 <- seq(x[1], x[2], 2)
cbind(head(x1, -1) + tail(x1, -1), head(x1, -1) - tail(x1, -1))
}))
# [,1] [,2]
# [1,] 4 -2
# [2,] 14 -2
# [3,] 18 -2
# [4,] 22 -2
# [5,] 26 -2
# [6,] 18 -2
# [7,] 22 -2
# [8,] 26 -2
# [9,] 30 -2
#[10,] 34 -2
#[11,] 38 -2
#[12,] 42 -2
do.call(rbind,apply(d,1,函数x){
x1我认为有更好的方法可以做到这一点,而不必使用for
循环。你能显示给定数据帧d
的预期输出吗?谢谢你的回答,事实上,我需要它来计算某物,因为我在本例中被求和和和减法。问题清楚吗?不,我不清楚。你能显示预期输出f吗还是给定的示例?我在Ronaksah添加了保存输出
mat[2,]<-c(14,-2), mat[3,]<-c(18,-2),mat[4,]<-c(22 ,-2) and mat[5,]<-c(22 ,-2)
do.call(rbind, apply(d, 1, function(x) {
x1 <- seq(x[1], x[2], 2)
cbind(head(x1, -1) + tail(x1, -1), head(x1, -1) - tail(x1, -1))
}))
# [,1] [,2]
# [1,] 4 -2
# [2,] 14 -2
# [3,] 18 -2
# [4,] 22 -2
# [5,] 26 -2
# [6,] 18 -2
# [7,] 22 -2
# [8,] 26 -2
# [9,] 30 -2
#[10,] 34 -2
#[11,] 38 -2
#[12,] 42 -2