r - 在R中选择有时间的行
问题描述
我有一个看起来像这样的数据框:
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
为包lubridate下的一个类,然后根据该列过滤数据框。
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
数据
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)
推荐阅读
- angular - 为什么我不能在角度组件属性中传递箭头函数
- python - 这段代码是否增加了输入数据?
- arrays - 在Objective c中组合两个NSMutableArray
- sql - 如何创建可以生成组合三个表的表的 SQL Server 存储过程
- python - 总和小于或等于给定数字的二维数组中的最大成本值
- c# - Web 应用程序将值从列表发送到 Java Script 中的函数
- javascript - 为什么我无法访问函数属性?
- android - 无法解决方法添加 YouTubePlayerSupportFragment 2020
- c# - 在 C# 中更改字段属性
- c++ - _mm256_store_epi32 未声明