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

我最近开始学习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 | 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行之前获得最新的“回车”。。从你第一次求助时起,我就没有任何答案了@是的,这帮我解决了之前遇到的问题……这个问题不同,我不知道如何解决另一个问题。