【发布时间】:2017-07-10 11:19:39
【问题描述】:
我有 15 个数据框,其中包含一组患者的就诊信息。下面的例子。它们被命名为FA.OFC1、FA.OFC2等。
ID sex date age.yrs important.var etc...
xx_111 F xx.xx.xxxx x.x x
我正在生成一个摘要数据框 (sev.scores),其中包含有关患者在所有记录数据中所经历的最严重事件的信息。我已成功使用which.max 函数获取最严重的情节,但现在需要有关该特定情节的更多信息。
我重新创建了数据框的名称,我需要通过在最大返回后粘贴信息来查找以获取其他信息:
max data frame
8 df2
具体来说,names() 函数为我提供了情节最严重的列的名称(在摘要数据框 sev.scores 中,它还为我提供了有关要查找的数据框的信息:
sev.scores[52:53] <- as.data.frame(cbind(row.names(sev.scores[c(5,8,11,14,17,20,23,26,29,32,35,38,41,44,47,50)]),apply(sev.scores[c(5,8,11,14,17,20,23,26,29,32,35,38,41,44,47,50)],1,function(x) names(sev.scores[c(5,8,11,14,17,20,23,26,29,32,35,38,41,44,47,50)])[which(x==max(x))])))
但是现在我想弄清楚如何告诉 R 获取存储在列中的数据框名称,并在该数据框中搜索第 5 列中的条目。
因此,在上面的示例中,有关最严重事件的信息存储在数据框 2 (df2) 中,我需要从第 5 条记录 (important.var) 中获取信息并将其返回到此摘要数据框。
更新
我现在已将这些 dfs 存储在一个列表中,但在获取我想要的信息时仍然遇到一些问题。
我找到了以下从列表中获取最大值的示例
lapply(L1, function(x) x[which.max(abs(x))])
如何针对列表中所有元素中存在的因素进行调整?
例如类似:
lapply(my_dfs[[all elements]]["factor of interest"], function(x) x[which.max(abs(x))])
【问题讨论】: