R-子集向量并在for循环中打印两个元素



我有一个向量s,在'for loop'中,我需要打印前两个值(1,2(,然后(2,3(,然后(3,4(和(3,4(和很快。

s <- c(1, 2, 3, 4 ,5)

我能想到的是

for (i in s) {
  print(i)
}

它一次仅打印出一个元素,有人可以帮助使用此小型代码。

我们可以从库中使用zoowidth = 2一起使用rollaplly,因为我们需要一次打印2个元素,并且我们将元素与","。

library(zoo)
rollapply(s, 2, function(x) paste0(x, collapse = ","))
#[1] "1,2" "2,3" "3,4" "4,5"

您可以使用

实现此目标
s <- c(1, 2, 3, 4 ,5)
for (i in 1:(length(s)-1)){
  print(paste('(', s[i], ",", s[i+1], ")", sep = ""))
}

我希望这会有所帮助!

for(i in 1:(length(s)-1)) print(s[c(i:(i+1))])

又是另一个解决方案:

sapply(seq_along(s)[-length(s)], function(i) paste(s[i], s[i+1], sep=", "))
[1] "1, 2" "2, 3" "3, 4" "4, 5"

最新更新