【发布时间】:2014-09-21 00:49:17
【问题描述】:
我想计算某人何时开始和停止评论博客。我的数据集在第 1 列中有一个用户 ID,后跟 6 列,每列代表一个时间段内的 cmets 数。我想创建一个列(“活动”)来标识出现非零值的第一个时期。我还想创建一个列(“非活动”),用于标识第一个周期,其中零跟随一个非零值,并且在后续周期中仅跟随零。
这是10行样本数据:
structure(list(userid = c(199782L, 30982L, 27889L, 108358L, 29620L,
229214L, 37531L, 711L, 30516L, 32360L), Period1 = c(0L, 1L, 43L,
0L, 189L, 0L, 0L, 142L, 26L, 0L), Period2 = c(0L, 36L, 40L, 18L,
32L, 0L, 6L, 55L, 159L, 0L), Period3 = c(0L, 68L, 25L, 110L,
1L, 0L, 31L, 14L, 32L, 0L), Period4 = c(0L, 45L, 0L, 91L, 0L,
0L, 54L, 1L, 0L, 0L), Period5 = c(93L, 27L, 57L, 0L, 0L, 35L,
79L, 4L, 0L, 26L), Period6 = c(132L, 47L, 37L, 4L, 0L, 186L,
50L, 2L, 0L, 191L)), .Names = c("userid", "Period1", "Period2",
"Period3", "Period4", "Period5", "Period6"), row.names = 175:184, class = "data.frame")
以下是 5 行的选定输出。 'inactive' 没有值意味着用户仍然处于活动状态。:
userid, active, inactive
199782, 5
27889, 1
29620, 1, 3
37531, 2
30516, 1, 3
有人可以为我指出如何解决这个问题的正确方向吗?谢谢!
【问题讨论】:
-
您的
active列可能是apply(df[-1] > 0, 1, match, x = TRUE)另一列需要更多考虑。你关心空的inactives 是不是NA?我想我会更好。 -
谢谢理查德。是的,不活动的可以是 NA
标签: r