r - 如何重命名列中某个值之前出现的 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
我将衷心感谢您的帮助。
解决方案
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
推荐阅读
- python - 使用类方法访问类中的类变量
- java - 如何使用 Springdoc 在 OpenAPI 3.0 中创建链接?
- cognos - 在 Cognos 中压缩计划报告
- mysql - 如何在mysql中对没有分组的数据求和
- javascript - 如何在 ajax 登录后响应(JWT)中获取使用的 ID?
- python - 有没有办法在 Django 管理站点中显示(十六进制颜色)字段的颜色?
- javascript - 如何将不带标题的 CSV 文件中的数据附加到 Google 表格中
- c - C 编程语言中是否允许嵌套内联函数(按标准)?
- javascript - Expo不断更改文件
- java - 具有字段对象数组的实体。如何正确描述这个实体使用 Hibernate ogm?