考虑示例数据
df <-
structure(
list(
id = c(1L, 1L, 1L, 1L, 2L, 2L, 3L),
A = c(20L, 12L, 13L, 8L, 11L, 21L, 17L),
B = c(1L, 1L, 0L, 0L, 1L, 0L, 0L)
),
.Names = c("id", "A", "B"),
class = "data.frame",
row.names = c(NA,-7L)
)
每个ID(存储在列1中)都有不同数量的列条目
A
和
B
. 在示例数据中,有四个观测值
id = 1
. 我正在寻找一种方法在R中对这些数据进行子集,以便每个ID最多有3个条目,最后创建另一列(标记为C),该列由每个ID的顺序组成。预期输出如下:
df <-
structure(
list(
id = c(1L, 1L, 1L, 2L, 2L, 3L),
A = c(20L, 12L, 13L, 11L, 21L, 17L),
B = c(1L, 1L, 0L, 1L, 0L, 0L),
C = c(1L, 2L, 3L, 1L, 2L, 1L)
),
.Names = c("id", "A", "B","C"),
class = "data.frame",
row.names = c(NA,-6L)
)
非常感谢你的帮助。