R 如何返回奇数位置的元素?
假设我们有:R 如何返回奇数位置的元素?,r,R,假设我们有: vector <- c(3:10) 结果2 3 5 7 9 10 8 6 4 但是我需要一个简短的函数,不能使用loop您可以尝试这样的方法 vector <- 3:10 n <- length(vector) c(vector[seq(n) %% 2 == 1], rev(vector[seq(n) %% 2 == 0])) ## [1] 3 5 7 9 10 8 6 4 vector你可以试试这样的东西 vector <- 3:10
vector <- c(3:10)
结果2
3 5 7 9 10 8 6 4
但是我需要一个简短的函数,不能使用loop您可以尝试这样的方法
vector <- 3:10
n <- length(vector)
c(vector[seq(n) %% 2 == 1], rev(vector[seq(n) %% 2 == 0]))
## [1] 3 5 7 9 10 8 6 4
vector你可以试试这样的东西
vector <- 3:10
n <- length(vector)
c(vector[seq(n) %% 2 == 1], rev(vector[seq(n) %% 2 == 0]))
## [1] 3 5 7 9 10 8 6 4
vector我想你最直接的方法是
vector <- 3:10
result <- vector[c(TRUE, FALSE)]
result2 <- c(vector[c(TRUE, FALSE)], rev(vector[c(FALSE, TRUE)]))
vector我想你最直接的方法是
vector <- 3:10
result <- vector[c(TRUE, FALSE)]
result2 <- c(vector[c(TRUE, FALSE)], rev(vector[c(FALSE, TRUE)]))
vector快一点:
n <- length(vector)/2
result <- vector[c(2*(1:n)-1,2*(n:1))]
快一点:
n <- length(vector)/2
result <- vector[c(2*(1:n)-1,2*(n:1))]
我不明白-两个回答这个问题的人都不能编辑它?我不明白-两个回答这个问题的人都不能编辑它?
> vector <- 3:10
> system.time(
+ for ( i in 1:100000 )
+ {
+ n <- length(vector)/2
+ result_A <- vector[c(2*(1:n)-1,2*(n:1))]
+ }
+ )
user system elapsed
0.64 0.00 0.65
> system.time(
+ for ( i in 1:100000 )
+ {
+ n <- length(vector)
+ result_B <- c(vector[seq(n) %% 2 == 1], rev(vector[seq(n) %% 2 == 0]))
.... [TRUNCATED]
user system elapsed
10.78 0.00 10.86
> system.time(
+ for ( i in 1:100000 )
+ {
+ result_C <- c(vector[c(TRUE, FALSE)], rev(vector[c(FALSE, TRUE)]))
+ }
+ )
user system elapsed
2.81 0.00 2.83
> result_A
[1] 3 5 7 9 10 8 6 4
> result_B
[1] 3 5 7 9 10 8 6 4
> result_C
[1] 3 5 7 9 10 8 6 4
>