R 从数据帧中提取特殊行
我有这样一个数据帧:R 从数据帧中提取特殊行,r,dataframe,R,Dataframe,我有这样一个数据帧: auftreten_Fehler Diff_Fehler auftreten_Warnung Diff_Warnung 1 2016-08-10 17:35:25 207.0000 2016-08-10 17:08:56 207.0000 2 2016-08-29 19:16:10 226.0000 2016-08-29 19:15:48 226.0000 3 2016-08-30 19:38:28 234.0000 2016
auftreten_Fehler Diff_Fehler auftreten_Warnung Diff_Warnung
1 2016-08-10 17:35:25 207.0000 2016-08-10 17:08:56 207.0000
2 2016-08-29 19:16:10 226.0000 2016-08-29 19:15:48 226.0000
3 2016-08-30 19:38:28 234.0000 2016-08-30 19:38:24 234.0000
4 2016-10-22 00:30:20 204.3333 2016-10-20 20:05:11 224.0000
5 2016-10-26 19:19:42 234.0000 2016-10-26 19:16:27 234.0000
6 2016-10-27 15:31:44 235.0000 2016-10-27 05:21:46 235.0000
7 2016-10-28 10:39:28 204.3333 2016-10-28 10:39:24 204.3333
8 2016-11-07 19:12:26 207.0000 2016-11-07 19:12:18 207.0000
9 2016-11-16 11:14:51 204.3333 2016-11-11 09:18:46 213.0000
我只想显示具有此条件的行:
k<-(FehlerWarnung[i,]$auftreten_Fehler - FehlerWarnung[i,]$auftreten_Warnung)
units(k)<-"mins"
if(k<2) #Show only rows if the difference is less than two minuts
如何在一行代码中使用△pply`或其他东西来完成这项工作?使用difftime一步完成时差计算,然后像这样直接为行编制索引
FehlerWarnung[difftime(FehlerWarnung$auftreten_Fehler, FehlerWarnung$auftreten_Warnung, units='mins') < 2,]
对德语单词不太熟悉,所以用你的语言创建了一个虚拟dta。对不起 时间起作用。您还可以指定想要的差值单位默认为秒
df
a b
1 2016-08-10 17:35:25 2016-08-10 17:08:56
2 2016-08-29 19:16:10 2016-08-29 19:15:48
3 2016-08-30 19:38:28 2016-08-30 19:38:24
#difftime(df$a, df$b)
#Time differences in secs
#[1] 1589 22 4
df[difftime(df$a, df$b)>120,]
将时间列转换为日期,并将difftime与mins Arguments一起使用。为什么加载lubridate?@Sotos只是为了确保格式正确。没有添加代码。谢谢,这是非常不必要的。我们有来自基地的as.Date或as.POSIXct。使用lubridate进行此转换的优势是什么?已接受。只是我喜欢这个包裹的习惯。代码删除