R以特定的方式重新排列我的桌子
我最近开始学习R。我基本上有一个表格,我想以一种特殊的方式重新排列,如果没有一个例子,我很难解释。这是我的桌子:R以特定的方式重新排列我的桌子,r,R,我最近开始学习R。我基本上有一个表格,我想以一种特殊的方式重新排列,如果没有一个例子,我很难解释。这是我的桌子: | user | event | Line | | use1 | enter | 1 | use1 | enter | 2 | use1 | login | 3 | use1 | enter | 4 | use1 | enter | 5 | use1 | enter | 6 | use1 | login | 7 | use2 | log
| user | event | Line |
| use1 | enter | 1
| use1 | enter | 2
| use1 | login | 3
| use1 | enter | 4
| use1 | enter | 5
| use1 | enter | 6
| use1 | login | 7
| use2 | login | 8
....
所以,基本上我想做的是,每次事件等于登录时都要查找,并将其与之前的最新enter匹配。生成的表应如下所示:
| user | event | Line |
| use1 | enter | 2
| use1 | login | 3
| use1 | enter | 6
| use1 | login | 7
| use1 | enter | 6
| use1 | login | 8
...
感谢您的帮助!
感谢您将这两个事件分离到不同的数组中,以查找每个登录的上一个enter事件
i1 <- which(df1$event == "login")
i2 <- which(df1$event == "enter")
i3 <- unlist(lapply(i1, function(x) c(max(i2[i2 < x]), x)))
df1[i3, ]
user event Line
2 use1 enter 2
3 use1 login 3
6 use1 enter 6
7 use1 login 7
6.1 use1 enter 6
8 use2 login 8
i1如果您想为事件变量选择只有“login”
的行,并让我们调用dat
到您的矩阵,您可以运行sub.login@R18我不只是想要“login”,我想将它与最近的“enter”配对。例如,第一次登录发生在第3行,这将在第2行之前获得最新的“回车”。。从你第一次求助时起,我就没有任何答案了@是的,这帮我解决了之前遇到的问题……这个问题不同,我不知道如何解决另一个问题。