r - R,确定跨多列的最小数字,获取相应数据以创建新变量
问题描述
我有这样的数据:
ForStack<-structure(list(study_id = c(40, 44, 49, 61, 66, 67, 68, 84, 86,
94), Volume1 = c(67.3833333333333, 87.1165644171779, 77.6822020644354,
79.1399603775784, 98.8751406074241, 97.0890874627674, 100.290979631426,
70.9095801937567, 87.8125822584891, 97.4208566108007), Volume2 = c(NA,
86.9325153374233, 71.8486080700657, NA, NA, NA, 88.8069835111542,
55.7723358449946, NA, 77.9329608938548), Volume3 = c(NA, NA,
NA, NA, NA, NA, 46.6052376333657, NA, NA, 64.7299813780261),
Volume4 = c(NA, NA, NA, NA, NA, NA, 41.8428709990301, NA,
NA, NA), Volume5 = c(NA_real_, NA_real_, NA_real_, NA_real_,
NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_
), TimeBetweenScans1 = structure(c(316, 113, 335, 104, 7,
42, 30, 643, 404, 40), class = "difftime", units = "days"),
TimeBetweenScans2 = structure(c(NA, 139, 660, NA, NA, NA,
84, 1794, NA, 221), class = "difftime", units = "days"),
TimeBetweenScans3 = structure(c(NA, NA, NA, NA, NA, NA, 467,
NA, NA, 394), class = "difftime", units = "days"), TimeBetweenScans4 = structure(c(NA,
NA, NA, NA, NA, NA, 826, NA, NA, NA), class = "difftime", units = "days"),
TimeBetweenScans5 = structure(c(NA_real_, NA_real_, NA_real_,
NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_,
NA_real_), class = "difftime", units = "days")), row.names = c(NA,
-10L), class = c("tbl_df", "tbl", "data.frame"))
如您所见,每个人的数据有多个列 (study_id),用于描述不同时间点的卷,然后它有对应于该卷时间点的列。即,如果患者 44 有一个“volume2”,那么他也有一个“TimebetweenScans2”。
如果它很重要,我会重新调整数据以通过以下方式创建该图表:
ForStack%>%pivot_longer(-study_id,
names_to = c(".value", "Time"),
names_pattern = "([A-Za-z]+)([0-9]+)")
我现在想做的是计算该图中每条线的“斜率”。从起点到最低音量,基本斜率很好。即:
换句话说,我确定如果患者有多个数据点,“真实”斜率会有某种曲线,但我不需要对此感兴趣。只是每个患者的斜率,从(100 体积,0 时间)的起点到他们的(最低体积,相应时间)。
我很挣扎,因为每位患者的最低音量可能位于不同的列中,而且并非每位患者甚至都填写了所有列。一名患者的最低音量可能在“volume2”(时间将在“TimeBetweenScans2”中),而另一位患者可能在“volume4”中具有最低音量(时间将在“TimeBetweenScans4”中)。
我很想计算该斜率并创建一个包含斜率的新列。任何帮助,将不胜感激!
解决方案
推荐阅读
- jquery - 在模板空函数中预先输入 - 事件不起作用(Knockout.js)
- angular - 在“可观察”类型上不存在获取属性“查找”
'。在角 - docker - 如何将 ECR Docker 映像标记为产品和非产品
- distributed-system - 即使在客户端会话到期后,像 Raft 这样的分布式存储系统如何过滤重复请求
- tabulator - 制表符 callEditCancelled 回调:如何确定键码?
- c++ - 什么是正确的格式以及如何在 .bin 文件中正确组织字节以在 char 数组 [] 中设置?
- javascript - 将 api 调用中的道具发送到另一个反应组件时遇到问题
- c# - 通过 Nuke.Common/NuGet.CommandLine 部署 NuGet 包时如何通过 Azure Auth
- node.js - 使用 node.js 提供图像的 WebServer
- reactjs - 将 aria-role 传递给 Material UI
零件