假设我有一个像这样的向量:

c("A", "B", "C", "D")

有4个位置.如果我制作一个大小为1的样品,我可以得到1、2、3或4.我想要的是能够根据向量的顺序来计算长度3的子集,例如,如果我得到2:

c("B", "C", "D")

如果我得到3:

c("C", "D", "A")

如果我得到4:

c("D","A", "B")

这就是逻辑,向量被排序,最后一个元素与第一个元素连接,当我子集时.

推荐答案

我想我明白了!

v <- c("A", "B", "C", "D")
p <- sample(1:length(v), 1)
r <- c(v[p:length(v)])
c(r, v[!(v %in% r)])[1:3]

以及输出:

v <- c("A", "B", "C", "D") # your vector

r <- c(v[2:length(v)])
c(r, v[!(v %in% r)])[1:3]
#> [1] "B" "C" "D"

r <- c(v[3:length(v)])
c(r, v[!(v %in% r)])[1:3]
#> [1] "C" "D" "A"

r <- c(v[4:length(v)])
c(r, v[!(v %in% r)])[1:3]
#> [1] "D" "A" "B"

reprex package(v2.0.1)于2022年5月16日创建

包装在函数中:

f <- function(v, nth) {
  r <- c(v[nth:length(v)])
  return(c(r, v[!(v %in% r)])[1:3])
}

R相关问答推荐

按列A中的值进行子集化,并获得列C中对应于R中列B的最大值行的值?使用循环自动化此操作

计算转换的次数

pdf Quarto中的中心美人鱼

R:如何自动化变量创建过程,其中我需要基于ifelse()为现有变量的每个级别创建一个单独的变量

将带有范围的字符串转换为R中的数字载体

列出用m n个值替换来绘制n个数字的所有方法(i.o.w.:R中大小为n的集合的所有划分为m个不同子集)

在值和NA的行顺序中寻找中断模式

隐藏e_mark_line的工具提示

Rplotly中的Sankey Diagram:意外连接&

如何根据嵌套元素的名称高效而优雅地确定它属于哪个列表?

如何从R ggplot图片中获取SVG字符串?

如何删除最后一个可操作对象

如何从容器函数中提取conf并添加到ggplot2中?

调换行/列并将第一行(原始数据帧的第一列)提升为标题的Tidyr类似功能?

将多个变量组合成宽格式

在R中,如何将误差条放置在堆叠的每个条上?

观察器中的inaliateLater的位置

多元正态分布的计算

在ggploy中创建GeV分布时出错

如何将EC50值绘制在R中的剂量-react 曲线上?