使用R中列表中的列创建矩阵

使用R中列表中的列创建矩阵,r,for-loop,dataframe,matrix,R,For Loop,Dataframe,Matrix,医学生试图在R中分析和可视化一些患者数据,现在需要帮助 我有几个列表(不同研究组的患者),每个列表都包含一列日期。我已经使用difftime将这些日期转换为天数差异,第一个日期是第0天。我想生成矩阵(或者可能是数据帧?),行数等于每个列表中经过的总天数,我将用与这些日期相关的数据填充其余的列 例如,列表1是一个包含6名患者的列表,$DT列是我的日期(以天为单位的时差) 目标是为列表中的每个对象生成一个矩阵,该矩阵最终将如下所示: matrix6 [Date] [Lab A] [Lab

医学生试图在R中分析和可视化一些患者数据,现在需要帮助

我有几个列表(不同研究组的患者),每个列表都包含一列日期。我已经使用difftime将这些日期转换为天数差异,第一个日期是第0天。我想生成矩阵(或者可能是数据帧?),行数等于每个列表中经过的总天数,我将用与这些日期相关的数据填充其余的列

例如,列表1是一个包含6名患者的列表,$DT列是我的日期(以天为单位的时差)

目标是为列表中的每个对象生成一个矩阵,该矩阵最终将如下所示:

matrix6
     [Date] [Lab A] [Lab B]
[48,]   48    1.23    4.56
[49,]   NA     NA      NA
.....
[60,]   60    7.89    9.01
我可以使用for循环为单个患者创建这个,但我不知道如何在我所有列表中的所有患者之间迭代它

以下是适用于单个患者的for循环:

nums <- as.numeric(list1[[6]]$DT)
timeline <- matrix(nrow=max(nums,na.rm=TRUE), ncol=3)
for (i in 1:length(list1[[6]]$DT){
  timeline[nums[i],1] <- nums[i]
  timeline[nums[i],2] <- list1[[6]]$labA[i]
  timeline[nums[i],3] <- list1[[6]]$labB[i]
}
关于如何使用列表中的所有患者生成这些时间表(因此列表1[[1到6]])有什么建议吗?我觉得我可能需要另一个for循环,但我不能让它正常工作


这是我第一次使用任何类型的编程语言,所以请随意指出任何看起来有趣的东西

一个具有预期输出的可复制示例将非常有用,您想要一个矩阵列表,对吗?看起来像是
lappy(列表1,函数(x)矩阵(c(as.numeric(x$DT),x$labA,x$labB,ncol=3))
我认为lappy是正确的想法,但我希望使矩阵的行数与我的日期的最大值相同。因此,我们将在时间线中的每一天都有一行,这些天的实验室值,所有其他的实验室值都是NA。我将编辑帖子以更好地反映这一点。这可能有助于:
nums <- as.numeric(list1[[6]]$DT)
timeline <- matrix(nrow=max(nums,na.rm=TRUE), ncol=3)
for (i in 1:length(list1[[6]]$DT){
  timeline[nums[i],1] <- nums[i]
  timeline[nums[i],2] <- list1[[6]]$labA[i]
  timeline[nums[i],3] <- list1[[6]]$labB[i]
}
[1,]   NA   NA   NA
[2,]   2    NA   1.23
[3,]   NA   NA   NA
...
[47,]   NA   NA   NA
[48,]   48  4.56  NA
[49,]   NA   NA   NA
...
[66,]   NA   NA   NA