我有一个数据框,其中每一行代表每个人的交互数据。
actions = read.table('C:/Users/Desktop/actions.csv', header = F, sep = ',', na.strings = '', stringsAsFactors = F)
每个人都可以有以下一种或多种互动:
eat, sleep, walk, jump, hop, wake, run
为每个人记录的动作长度可能会有所不同,如下所示:
P1: eat, sleep, sleep, sleep
P2: wake, walk, eat, walk, walk, jump, jump, run, run
P3: wake, eat, walk, jump, run, sleep
为了使长度相等,我在最后有 NA 填充:
P1: eat, sleep, sleep, sleep, NA, NA, NA, NA, NA
P2: wake, walk, eat, walk, walk, jump, jump, run, run
P3: wake, eat, walk, jump, run, sleep, NA, NA, NA
现在,我的要求是更新每个人的条目(按行数据),以便没有两个连续的条目是重复的。维持秩序非常重要。我需要的输出是:
P1: eat, sleep, NA, NA, NA, NA, NA, NA, NA
P2: wake, walk, eat, walk, jump, run, NA, NA, NA
P3: wake, eat, walk, jump, run, sleep, NA, NA, NA
列名默认为 V1、V2、V3 .... Vn 其中
n = maximum length of interactions string
在上面的例子中,P2 有最大长度;所以 n = 9。所以上例中的总列来自 V1-V9。
的输出
dput(actions)
structure(list(V1 = c("S", "C", "R"), V2 = c("C", "C", "R"),
V3 = c("R", "C", "R"), V4 = c("S", NA, "R"), V5 = c("C",
NA, "R"), V6 = c("R", NA, NA), V7 = c("S", NA, NA), V8 = c("C",
NA, NA), V9 = c("R", NA, NA)), class = "data.frame", row.names = c(NA,-3L))
以下问题:Removing Only Adjacent Duplicates in Data Frame in R与我的有点相似,但是有几个不同之处。即使合并上述问题中的代码,我也无法解决我的问题。
对此的任何建议将不胜感激!