首页 > 解决方案 > 为数据框列表中的变量提取数据

问题描述

我有一个数据框列表(dataframe1、dataframe2、dataframe3 ..dataframe(n))。所有数据框都有一个名为“Patient_ID”的列。现在我正在尝试使用以下方法获取与患者 ID 关联的元数据:

  lists_of_metadata <- data.frame()
  
  for (i in 1:length(all_lists))  
  {lists_of_metadat[i] <- all_metadata2[(all_metadata2$Patient_ID %in% all_lists[[i]][[1]]),]}

然而,这是行不通的。我还尝试了另一种方式,它也没有返回任何内容:

lapply(all_lists, function(x) {all_metadata2[(all_metadata2$Patient_ID %in%
                                                 (names(x)[ grep("Patient_ID", names(x))])),]
  } )

我想返回包含提取的元数据的 lists_of_metadata 文件,并保留我在 all_lists 文件中的数据框名称。我已经坚持了一段时间,非常感谢您的帮助。

标签: rloopslapply

解决方案


将所有数据框放在一个列表中,然后您可以lapply用作 -

all_lists <- list(dataframe1, dataframe2,dataframe3, ..dataframe(n))

lists_of_metadat <- lapply(list_data, function(x)  
                  all_metadata2[all_metadata2$Patient_ID %in% x$Patient_ID,])

推荐阅读