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

子集向量并在for循环中打印两个元素,r,vector,subset,R,Vector,Subset,我有一个向量s,在“for循环”中,我需要打印前两个值(1,2),然后,(2,3),然后(3,4),依此类推 s <- c(1, 2, 3, 4 ,5) 它一次只能打印出一个元素,有人能帮上忙吗 s <- c(1, 2, 3, 4 ,5) for (i in 1:(length(s)-1)){ print(paste('(', s[i], ",", s[i+1], ")", sep = "")) } s我们可以将库zoo中的rollaply与width=2一起使用,因为我们需

我有一个向量
s
,在“for循环”中,我需要打印前两个值(1,2),然后,(2,3),然后(3,4),依此类推

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

它一次只能打印出一个元素,有人能帮上忙吗

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

s我们可以将库
zoo
中的
rollaply
width=2
一起使用,因为我们需要一次打印2个元素,并用“,”将元素连接在一起

另一个解决方案:

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

谢谢,不是矢量,如果我有一个df$col并且想要在上面执行相同的功能,我应该如何修改它?@user3698773而不是矢量put
df$col
rollappy(df$col,2,函数(x)paste0(x,collapse=“,”)
谢谢,而不是矢量,如果我有一个df$col并且想要在上面执行相同的功能,我应该如何修改它?
对于(I in 1:(dim(df)[1]-1])打印(df$col[c(I:(I+1)))
(这是假设您必须使用
for
循环。没有它有更好的方法实现这一点)谢谢,请确实建议更好的方法来实现它,而不使用for a循环。
粘贴(df$col,lead(df$col))[-dim(df)[)[1]
将导致
“12”“2 3”“3 4”“4 5”
为了让它更漂亮:
paste0((“,df$col,”,“,lead(df$col),”)[-dim(df)[1]
for(i in 1:(length(s)-1)) print(s[c(i:(i+1))])
library(zoo)
rollapply(s, 2, function(x) paste0(x, collapse = ","))

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