如何生成数列1,2,5,6,9,10,13,14,
How to generate number sequence 1,2,5,6,9,10,13,14,
我想生成一个交替序列,将它们输入到 R 中的数据框中。每个元素总是两个(在我的例子中:2x 女儿,2x 母亲)。在我的具体示例中,我使用索引 1、2、5、6、9、10 等
我想要的输出是以下形式的数据框:
df <- data.frame(values=c(sample(1:8)), relation=c("daughter", "daughter", "mother", "mother", "daughter", "daughter", "mother", "mother"))
df
values relation
1 4 daughter
2 3 daughter
3 2 mother
4 8 mother
5 1 daughter
6 5 daughter
7 6 mother
8 7 mother
我可以找到正确的索引来替换初始条目:
daughter_id <- sort(c(seq(1,20, 4), seq(2,20, 4)))
mother_id <- sort(c(seq(3,20, 4), seq(4,20, 4)))
它有效并允许我输入我想要的值:
df[daughter_id ,"relation"] <- "daughter"
df[mother_id,"relation"] <- "mother"
但是有更简单的解决方案吗?
有没有直接插入某些值n次的方案?
你可以做到
c(rbind(1+4*(1:k), 2+4*(1:k)))
基本上利用了 R 存储矩阵(列主向量)的方式
或者也许:
sweep(4L*rbind(1:k, 1:k), 1L, 1:2, '+')
我想生成一个交替序列,将它们输入到 R 中的数据框中。每个元素总是两个(在我的例子中:2x 女儿,2x 母亲)。在我的具体示例中,我使用索引 1、2、5、6、9、10 等
我想要的输出是以下形式的数据框:
df <- data.frame(values=c(sample(1:8)), relation=c("daughter", "daughter", "mother", "mother", "daughter", "daughter", "mother", "mother"))
df
values relation
1 4 daughter
2 3 daughter
3 2 mother
4 8 mother
5 1 daughter
6 5 daughter
7 6 mother
8 7 mother
我可以找到正确的索引来替换初始条目:
daughter_id <- sort(c(seq(1,20, 4), seq(2,20, 4)))
mother_id <- sort(c(seq(3,20, 4), seq(4,20, 4)))
它有效并允许我输入我想要的值:
df[daughter_id ,"relation"] <- "daughter"
df[mother_id,"relation"] <- "mother"
但是有更简单的解决方案吗? 有没有直接插入某些值n次的方案?
你可以做到
c(rbind(1+4*(1:k), 2+4*(1:k)))
基本上利用了 R 存储矩阵(列主向量)的方式
或者也许:
sweep(4L*rbind(1:k, 1:k), 1L, 1:2, '+')