r - 根据 R 中的某些条件创建新列
问题描述
有人可以帮我为以下问题编写 R 代码吗?
使用下面的数据,我想添加第三列“x”,它从第一行的 1 开始并保持为 1,直到我的年份达到 1,此时 x 列变为“2”(第 12 行)并再次变为 3在第 (23) 行,依此类推..
data <- structure(list(year = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 1,
2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 1, 2), pattern_values = c("41",
"59", "69", "75", "85",
"43", "45", "48", "52",
"56", "0", "748", "728",
"701", "670", "645", "53",
"55", "59", "63", "69",
"0", "918", "717")), row.names = c(NA,
-24L), class = c("tbl_df", "tbl", "data.frame"))
解决方案
我们可以使用cumsum
:
data$x <- cumsum(data$year == 1)
data$x
#[1] 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 3 3
推荐阅读
- amazon-web-services - 如何解决 InsufficientS3BucketPolicyException 错误信息
- ios - 不要在颤振应用程序上使用 in_app_purchase 检索我的购买
- colors - 在 spyder 编辑器中更改一个字符的颜色
- c++ - 用预处理器替换 C++ 类/静态方法?
- android - 如何在 Android Studio 中创建一个包含调试和主包的 Android 库模块?
- c - C中的浮点异常(核心转储),不确定错误的含义
- microsoft-graph-api - 如何使用 Graph API 从 Share Point Online Team Site 获取文档?
- r - 如何分离混合模型,并拟合单独的线性模型
- oracle - LNNVL 代替 NOT IN?
- user-interface - Blazor 服务器 NavLink 格式?