首页 > 解决方案 > 根据 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"))

标签: r

解决方案


我们可以使用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

推荐阅读