【发布时间】:2020-04-15 12:13:03
【问题描述】:
假设我有 3 列。第一列是user,应该将哪些数据分组。每个user 可以有多个session。我有action 列,其中包含一些值和NAs,我想根据session 和``用户:
对于每个用户,用其值填充action 列,直到出现以下两种情况:
1-继续填写直到达到session+1 号码。这意味着如果action == A and session==2 用A 填充所有NA 值,直到session 4,其中包括session 2 和3。
或
2- 直到在session+1 内达到新的action 值。在这种情况下,新值开始填充,直到它的session +1
df<-read.table(text="
user session action
1 1 NA
1 1 A
1 1 NA
1 1 B
1 2 NA
1 2 NA
1 3 NA
2 1 AA
2 1 NA
2 1 NA
2 2 NA
2 3 NA
2 4 AA
2 5 NA
2 6 NA
2 7 AA
2 8 NA",header=T, stringsAsFactors = FALSE)
结果:(我突出显示了受影响的行)
user session action
1 1 NA
1 1 A
1 1 A <--
1 1 B
1 2 B <--
1 2 B <--
1 3 NA
2 1 AA
2 1 AA <--
2 1 AA <--
2 2 AA <--
2 3 NA
2 4 AA
2 5 AA <--
2 6 NA
2 7 AA
2 8 AA <--
【问题讨论】:
-
为什么
session3中的NA没有被替换? -
@RonakShah 因为
AA出现在会话1所以它会填满直到session