r - 在循环中的特定数字之间放置值
问题描述
所以可以说我有
x = 1,4,2
i = 2
j = 4
k = 3
所以 i = 2 和 j = 4,关键是我需要在 x 中的数字 i,j 之间放置 k (3),因此结果将是 x = 1,4,3,2。我需要它在一个循环中工作,因为 i,j,k 中的数字总是会改变,当来自 k 的新数字放入 x 时 x 的长度也会改变。第一步之后的新 x 是 x = 1,4,3,2 并且可以说新值:
i = 4
j = 3
k = 5 so again in the cycle it should place 5 in x between 4 and 3 so final x = 1,4,5,3,2
有办法我可以做到吗?
解决方案
当 i 总是 j 之前的数字时,
你可以使用append
功能:
IE:
x = c(1,4,2)
i = 4
k = 3
x <- append(x, k, match(i, x))
x
[1] 1 4 3 2
i = 4
k = 5
x <- append(x, k, match(i, x))
x
[1] 1 4 5 3 2
把它放在一个函数中:
insert <- function(x, k, i){
append(x, k, match(i, x))
}
请注意,您没有指定如果向量中有超过 1 个 4 会发生什么。即x<- c(1,4,2,4,2)
你到底想把3放在哪里?是在前四个之后还是后四个?ETC
推荐阅读
- css - 网站部分的背景颜色与不同屏幕上视频的背景颜色不匹配的奇怪问题
- reactjs - 如果用户不使用 multer 选择文件,如何从表单数据中忽略“req.file.path”
- java - Spring boot 错误创建名为“entityManagerFactory”的 bean。是数据库问题吗?
- php - 如何用逗号将对象转换为字符串?
- laravel - 用户控制器不存在
- android - 如何从此 api 查询随机日期?
- sql - 如何在Oracle sql中将行转换为按多列分组的列
- mysql - Docker 撰写 - MySQL - MYSQL_ROOT_PASSWORD
- python - 如何将输入视为复杂张量?RuntimeError:张量必须具有步幅为 1 的最后一个维度
- node.js - Mongoose 无法创建新文档:无法读取未定义的属性“get”