我有一个向量:
dput(pos)
c(2000L, 2020L, 2020L, 2040L, 2060L, 2080L, 2100L, 2120L, 2140L, 2160L, 2180L,
2200L, 2220L, 2240L, 2260L, 2280L, 2300L, 2320L, 2340L, 2360L, 2380L,
2400L, 2420L, 2440L, 2460L, 2480L, 2500L, 2520L, 2540L, 2560L, 2580L,
2600L, 2620L, 2640L, 2660L, 2680L, 2700L, 2720L, 2740L, 2760L, 2780L,
2800L, 2820L, 2840L, 2860L, 2880L, 2900L, 2920L, 2940L, 2960L, 2980L)
我想对pos
进行排序,以便获得以下向量:
2000, 2980, 2020, 2960, 2040, 2940
等。
我写了一个函数:
for (i in seq_along(pos)){
el1 <- min(range(pos))
el2 <- max(range(pos))
res <- rbind(el1, el2)
pos <- pos[!pos == c(el1, el2)]}
不用说它没有给我想要的res
向量。我知道我没有在循环中的任何地方调用i
,如何解决此问题?
谢谢!
答案 0 :(得分:0)
pos = c(2000L, 2020L, 2040L, 2060L, 2080L, 2100L, 2120L, 2140L, 2160L, 2180L,
2200L, 2220L, 2240L, 2260L, 2280L, 2300L, 2320L, 2340L, 2360L, 2380L,
2400L, 2420L, 2440L, 2460L, 2480L, 2500L, 2520L, 2540L, 2560L, 2580L,
2600L, 2620L, 2640L, 2660L, 2680L, 2700L, 2720L, 2740L, 2760L, 2780L,
2800L, 2820L, 2840L, 2860L, 2880L, 2900L, 2920L, 2940L, 2960L)
n = round(length(pos)/2)+1
pos2 = rep(0,(2*(n)-1))
pos2[2*(1:n)] = pos[2*(n:1)-1]
pos2[2*(1:n)-1] = pos[2*(1:n)]
答案 1 :(得分:0)
您可以反转向量并与原始图像组合,然后根据偶数/奇数序列选择一个或另一个:
newdata <- data.frame(cbind(dat=data, rev=c(1, rev(data)[- length(data)]), n=seq(1:length(data)))) %>%
mutate(res=ifelse(n%%2==1, dat, rev)) %>%
select(res)