r - 使用来自一个数据集的数据从不同的数据集中提取信息
问题描述
我有两个数据集。一个有每个主题的健康信息。另一个有 MRI 日期前后的信息。我正在尝试根据这些前后日期提取健康信息。
MRI Pre/Post 数据集:
ID prescan PreDate Postscan PostDate
5006 1 5/10/2018 1 6/14/2018
5007 1 5/15/2018 1 6/13/2018
5009 1 5/9/2018 1 6/11/2018
5011 1 5/31/2018 1 7/2/2018
5013 1 5/30/2018 1 7/5/2018
睡眠数据样本:
SubID SleepDate Day of Week RHR HRV Recovery
5007 5/12/2018 'Saturday ' 63 95 65
5007 5/13/2018 'Sunday ' 66 72 52
5010 5/7/2018 'Monday ' 74 40 48
5010 5/8/2018 'Tuesday ' 68 67 59
5010 5/9/2018 'Wednesday' 75 74 82
5010 5/10/2018 'Thursday ' 71 80 89
5010 5/11/2018 'Friday ' 71 91 95
5010 5/12/2018 'Saturday ' 68 66 58
5008 5/7/2018 'Monday ' 60 132 85
5008 5/8/2018 'Tuesday ' 60 123 90
5008 5/9/2018 'Wednesday' 66 105 68
5009 5/7/2018 'Monday ' 47 148 90
5009 5/8/2018 'Tuesday ' 45 169 87
5009 5/9/2018 'Wednesday' 46 176 75
5009 5/10/2018 'Thursday ' 50 138 54
5009 5/11/2018 'Friday ' 46 132 42
5009 5/12/2018 'Saturday ' 47 158 60
5009 5/13/2018 'Sunday ' 47 141 54
5006 5/7/2018 'Monday ' 56 92 65
我尝试了什么(以及它的变体)
SleepData %>%
subset(SubID == 5006) %>%
filter(SleepDate %in% MRI_date$PreDate)
上面经常返回所有的5006 ID数据
SleepData %>%
subset(SubID == 5006) %>%
subset(SleepDate == MRI_date$PreDate)
返回:
longer object length is not a multiple of shorter object lengthLength of logical index must be 1 or 31, not 44Error in (function (..., row.names = NULL, check.rows = FALSE, check.names = TRUE, :
arguments imply differing number of rows: 0, 1
我要提取的内容
基于此,例如:
If ID == 5009 & (Date == 5/9/2018 & 6/11/2018)
我想相应地接收睡眠数据:
SubID SleepDate Day of Week RHR HRV Recovery
5009 5/9/2018 'Wednesday' 46 176 75
5009 6/11/2018 'Wednesday' 76 196 95
【我编了6/11/2018供参考】
解决方案
尝试这样的事情。
library(dplyr)
sleep.dat %>%
inner_join(mri.dat, by = c("Id" = "subId") %>%
select(Id == "5009") %>%
mutate(Date = as.Date(Date, "%m/%d/%Y")) %>%
filter(Date >= as.Date("5-9-2018") & Date <= as.Date("6-11-2018")) %>%
select(Id, SleepDate, `Day of Week`, RHR, HRV, Recovery)
推荐阅读
- autofac - 如何在 Autofac 中获取已注册服务的列表
- c++ - 访问与父类是朋友的类的私有成员
- c# - 代码中添加到面板的标签控件不显示
- azure - 使用 terraform 创建 azure webhook
- c - 客户端发送消息但在服务器上看不到
- tensorflow - TensorFlow Objection Detection API 训练错误
- json - 使用 perl 在 bash 中将 yaml 转换为 json
- solr - Solr 写入响应延迟(qtime 和实时之间的增量,响应块延迟)
- python - 在 Django 应用程序中初始化 GraphQL 客户端的位置
- jquery - Kartik 树视图在每个节点上显示不同的视图单击