【问题标题】:format of do.call statementdo.call 语句格式
【发布时间】:2023-01-11 05:40:52
【问题描述】:

我试图了解如何在语句中正确格式化 lapply、rbind 和 do.call 的组合,但无法使语句正常运行。我提供了一个简单的示例函数和数据,我正在使用它们来尝试理解格式。我完全理解我提供的场景可以使用更简单的方法运行,这样做的目的是简单地了解格式以及如何在自定义函数上使用 lapply 和 rbind。

下面是一些测试数据:

facility_id  patient_number  test_result
123          1000            25
123          1000            30
25           1001            12
25           1002            67
25           1010            75
65           1009            8
22           1222            95
22           1223            89

我实质上是在尝试使用设施 ID 值列表将自定义函数中的数据子集化,然后想将自定义函数产生的每个数据表绑定在一起。

这是我使用的代码:

facilities_id_list<-c(123, 25)
facility_counts<-function(facilities_id_list){
  facility<-facilities_id_list[[i]]
  subset<-data[facility_id==facility]
}

results <- do.call("rbind", lapply(seq_along(facilities_id_list), function(i) facility_counts)

我希望达到的结果:

facility_id  patient_number  test_result
123          1000            25
123          1000            30
25           1001            12
25           1002            67
25           1010            75

为什么这不起作用?我需要更改格式吗?

【问题讨论】:

    标签: r apply rbind do.call


    【解决方案1】:

    不要使用==,而是使用%in% 进行直接子集化

    subset(dat, facility_id %in% facilities_id_list)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-29
      • 2013-12-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多