我有一个向量s
,在'for loop'中,我需要打印前两个值(1,2(,然后(2,3(,然后(3,4(和(3,4(和很快。
s <- c(1, 2, 3, 4 ,5)
我能想到的是
for (i in s) {
print(i)
}
它一次仅打印出一个元素,有人可以帮助使用此小型代码。
我们可以从库中使用zoo
与width = 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"