将相同的函数应用于R中的不同数据帧

时间:2015-05-12 19:29:39

标签: r

我有2个不同的数据框,我正在尝试在每个数据表上运行相同的功能。

在每个数据框上都有一个ClaimID变量,我想为每个表运行该变量的唯一计数。我将使用的功能将是与独特功能相结合的长度。谢谢!

这是我现在正在使用的代码:

t <- data.frame(lapply(df.list,function(x) 
        cbind("PatientIDs", length(unique(x[,3])))))  

我相信我的结果数据框看起来像这样:

FREQ    1    2    4    7

1 个答案:

答案 0 :(得分:1)

我们收到错误的原因是因为列表元素的table输出长度不相等。要将输出长度设置为相等,我们可以将列转换为&#39; factor&#39;将级别指定为所有列表元素中的唯一元素,然后我们使用table

   Un1 <- sort(unique(unlist(lapply(df.list, `[[`, 12))))
   data.frame(lapply(df.list, function(x) table(factor(x[,12], levels=Un1))))

以下解决方案也提供相同的频率列输出。在这种情况下,您可能不需要将列转换为&#39; factor&#39;

  library(reshape2)
  table(melt(lapply(df.list,"[[", 12)))