循环R中的重新订购问题

循环R中的重新订购问题,r,loops,R,Loops,我希望将我的数据重新排序到一个新的数据框中(下例中的列表),第一个观察是第一个,最后一个观察是第二个,两个观察都从初始数据框中删除,然后重复 data <- seq(1,12,1) i <- 1 ii <- 1:length(data) newData <- seq(1,12,1) for (i in ii){ a <- 1 newData[i] <- data[a] i <- i + 1 b <- as.numeric(le

我希望将我的数据重新排序到一个新的数据框中(下例中的列表),第一个观察是第一个,最后一个观察是第二个,两个观察都从初始数据框中删除,然后重复

data <- seq(1,12,1)

i <- 1
ii <- 1:length(data)

newData <- seq(1,12,1)

for (i in ii){
  a <- 1
  newData[i] <- data[a]
  i <- i + 1
  b <- as.numeric(length(data))
  newData[i]<- data[b]

  index <- c(a, b)
  data <- data[-index]

  i <- i + 1
}

data正如MrFlick所提到的,您不能在for循环中修改索引。但如果只需要每秒钟一次索引,则可以使用

ii <- seq(1,length(data),2)

你们都在使用
i
作为
for
循环变量,而且你们自己也在尝试增加它。你不能两者都做。如果要自己添加,而不是使用
for
循环,请使用
while(i
循环。
m = matrix(c(1:6,12:7), ncol=2)
i = as.vector(t(m))
newdata = data[i]