在R中随时间选择行
我有一个如下所示的数据框:在R中随时间选择行,r,dataframe,time,lubridate,R,Dataframe,Time,Lubridate,我有一个如下所示的数据框: Subject Time Freq1 Freq2 ... A 6:20 0.6 0.1 A 6:30 0.1 0.5 A 6:40 0.6 0.1 A 6:50 0.6 0.1 A 7:00 0.3 0.4 A 7:10 0.1 0.5 A 7:20 0.1 0.5 B
Subject Time Freq1 Freq2 ...
A 6:20 0.6 0.1
A 6:30 0.1 0.5
A 6:40 0.6 0.1
A 6:50 0.6 0.1
A 7:00 0.3 0.4
A 7:10 0.1 0.5
A 7:20 0.1 0.5
B 6:00 ... ...
我需要删除时间范围内的行,它不是从7:00到7:30。因此,在本例中,所有的6:00、6:10、6:20
我曾尝试创建一个数据框,其中只包含我想要保留的时间,但我似乎无法将时间识别为数字或名称。当我试图直接删除那些我不需要的东西时,我也会遇到同样的错误。这可能很简单,但我还没有找到任何解决方案
有什么建议吗?我们可以将
time
列转换为包下的Period
类,然后根据该列过滤数据帧
library(dplyr)
library(lubridate)
dat2 <- dat %>%
mutate(HM = hm(Time)) %>%
filter(HM < hm("7:00") | HM > hm("7:30")) %>%
select(-HM)
dat2
# Subject Time Freq1 Freq2
# 1 A 6:20 0.6 0.1
# 2 A 6:30 0.1 0.5
# 3 A 6:40 0.6 0.1
# 4 A 6:50 0.6 0.1
# 5 B 6:00 NA NA
库(dplyr)
图书馆(lubridate)
dat2%
突变(HM=HM(时间))%>%
过滤器(HMHM(“7:30”))%%>
选择(-HM)
dat2
#受试者时间频率1频率2
#1A 6:20 0.6 0.1
#2 A 6:30 0.10.5
#3 A 6:40 0.6 0.1
#4 A 6:50 0.6 0.1
#5B 6:00NA
数据
dat <- read.table(text = "Subject Time Freq1 Freq2
A '6:20' 0.6 0.1
A '6:30' 0.1 0.5
A '6:40' 0.6 0.1
A '6:50' 0.6 0.1
A '7:00' 0.3 0.4
A '7:10' 0.1 0.5
A '7:20' 0.1 0.5
B '6:00' NA NA",
header = TRUE)
dat如果您想了解为什么“仅凭时间创建数据帧”方法不起作用,我们可能需要一个更详细、更容易复制的示例。如果您感兴趣,这里有一些指导:mutate函数工作得很好,谢谢。选择和筛选不起作用,但我可以管理之后。