子集矢量和打印for循环中的两个元素

时间:2018-03-27 00:52:10

标签: r vector subset

我有一个向量s,在'for循环'中我需要打印前两个值(1,2)然后,(2,3)然后(3,4)等等。

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

我能想到的只是

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

它一次只打印一个元素,有人可以帮助这个小代码。

4 个答案:

答案 0 :(得分:3)

我们可以使用rollaplly库中的zoowidth = 2,因为我们需要一次打印2个元素,然后将这些元素连接到&#34;,&#34 ;

library(zoo)
rollapply(s, 2, function(x) paste0(x, collapse = ","))

#[1] "1,2" "2,3" "3,4" "4,5"

答案 1 :(得分:0)

您可以使用

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

我希望这有帮助!

答案 2 :(得分:0)

<button id="xxx"...

答案 3 :(得分:0)

又一个解决方案:

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