首页 > 解决方案 > 如何重命名列中某个值之前出现的 n 行?

问题描述

我有一个包含大约 60000 个条目的数据集和一个包含值 0 和 1 的列 (2)。我想将值 3 分配给值 1 之前出现的每 12 行。0 和 1 的值在我的数据集。

 1. 0
 2. 0
 3. 0
 4. 0
 5. 0
 6. 0
 7. 0
 8. 0
 9. 0
 10. 0
 11. 0
 12. 0
 13. 1
 14. 0
 15. 0

在上面的示例中,我想将值 3 分配给从 1 到 12 的行:

 1. 3
 2. 3
 3. 3
 4. 3
 5. 3
 6. 3
 7. 3
 8. 3
 9. 3
 10. 3
 11. 3
 12. 3
 13. 1
 14. 0
 15. 0

我将衷心感谢您的帮助。

标签: r

解决方案


set.seed(123)
df <- data.frame(var1 = sample(c(0,1), 100, T, c(0.97, 0.03)))
df$var1[sapply(which(df$var1 == 1), function(x) seq(x -1, x-12))] <- 3

head(df, 25)
   var1
1     0
2     0
3     0
4     0
5     0
6     0
7     0
8     0
9     0
10    0
11    0
12    3
13    3
14    3
15    3
16    3
17    3
18    3
19    3
20    3
21    3
22    3
23    3
24    1
25    0

推荐阅读