r - 沿序列移动值

标签 r sequence

我的目标是生成这样的序列:

> c(1, rep(9, 7))
[1] 1 9 9 9 9 9 9 9
> c(9, 1, rep(9, 6))
[1] 9 1 9 9 9 9 9 9
> c(rep(9, 2), 1, rep(9, 5))
[1] 9 9 1 9 9 9 9 9

本质上,我有一个保持不变的序列,但我想移动一个值,一次一个空格。

显然,我可以用与我所做的类似的方式写出来,但我的实际序列要大得多,所以这不太实用。我对此的搜索有些徒劳,因此我们将不胜感激。谢谢

最佳答案

您可以创建一个矩阵并替换对角线,即

m1 <-matrix(data = 9, nrow = 8, ncol = 8)
diag(m1) <- 1
m1

#     [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8]
#[1,]    1    9    9    9    9    9    9    9
#[2,]    9    1    9    9    9    9    9    9
#[3,]    9    9    1    9    9    9    9    9
#[4,]    9    9    9    1    9    9    9    9
#[5,]    9    9    9    9    1    9    9    9
#[6,]    9    9    9    9    9    1    9    9
#[7,]    9    9    9    9    9    9    1    9
#[8,]    9    9    9    9    9    9    9    1

一个衬里是:

`diag<-`(matrix(data = 9, nrow = 8, ncol = 8),1)

关于r - 沿序列移动值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41159808/

相关文章:

python - 最长的连续字母序列

c - 将元素添加到 C 结构体序列的前面

在没有 for 循环的情况下重命名列表的命名列表的部分

python - 具有最小值、最大值、平均值和标准差的箱线图

r - 在 map 上绘制线条 - gcIntermediate

r - 如何提取 ggplot2 使用的坐标单位?

r - dplyr 0.7 等效于已弃用的 mutate_

python - python中数据帧的序列长度

algorithm - 递增子序列的最小数量

uml - 注册和报告的序列图