我有一大组数据,我已将它们分成一个列表。下面是从列表中元素的一个小样本:如何将元素与另一行中的另一个元素和另一列中的另一个元素进行比较
>tes
Bike CheckoutKioskName Checkout_date_time ReturnKioskName Return_date_time
24627 1 67th & Pine 2013-03-12 17:54:22 Shop 2013-03-12 20:32:40
24847 1 67th & Frances 2013-05-17 10:31:44 67th & Frances 2013-05-17 10:51:53
24852 1 67th & Frances 2013-05-18 09:27:13 Aksarben Drive 2013-05-18 10:05:29
24864 1 Aksarben Drive 2013-05-18 10:47:13 Aksarben Drive 2013-05-18 10:52:24
24998 1 Aksarben Drive 2013-06-05 19:48:05 67th & Frances 2013-06-26 17:06:52
25434 1 67th & Frances 2013-06-26 19:10:28 67th & Frances 2013-06-26 20:08:09
我想比较ReturnKioskName
到下一行CheckoutKioskName
,如果他们不匹配,我想要两个标志的两行,将它们放入一个新的数据帧。我试图用几种不同的方式来做到这一点,并希望避免创建一个新的数据框,只是为了移动ReturnKioskName
。我曾尝试使用:
tes <- tes[tes$CheckoutKioskName != lag(tes$ReturnKioskName),]
但是,这不给我输出,我想。首选输出应该如下所示:
24627 1 67th & Pine 2013-03-12 17:54:22 Shop 2013-03-12 20:32:40
24847 1 67th & Frances 2013-05-17 10:31:44 67th & Frances 2013-05-17 10:51:53
这应该是在这个小例子中,因为这是他们唯一不匹配的时间。我计划在我通过我的大列表('fz')的每个元素运行它之后,使用此过程创建这些实例的巨大列表。
我感谢您提前帮助您提供任何帮助。
同样滞后的代码没有工作,它实际上给了很多不同的输出,则基础R版本。 – Brett
您是否可以提供最少的输入,并使用提供的解决方案生成不正确的输出,这将更容易排除故障。你可以在小数据集上使用'dput'并粘贴结果。这将使分析更快捷。 – steveb
我想这应该是对你的问题的编辑而不是答案。我正在使用您的示例,并提供了预期的输出。 – akrun