【问题标题】:Pipe operation dplyr R with object returned a list带有对象的管道操作 dplyr R 返回了一个列表
【发布时间】:2020-01-13 04:57:49
【问题描述】:

我正在尝试使用 dplyr 管道操作计算每个组的测量值和预测值之间的一致性值(使用 epiR 包)。我的示例代码如下

measured <- c(23, 20, 24, 26, 23, 46, 47, 45, 47, 46, 67, 68, 64, 63, 63)
predicted <- c(21, 19, 25, 23, 25, 48, 45, 46, 48, 46, 67, 68, 64, 63, 63)
gdata <- cbind(replicate, measured, predicted)
gdata <- as.data.frame(gdata)
head(gdata)
gdata$replicate <- as.factor(gdata$replicate)
test <- gdata %>% 
group_by(replicate) %>%
mutate(tt <- epiR::epi.ccc(gdata$measured, gdata$predicted))

我想要的是提取 tt$rho$est 值,该值在这种情况下复制的每个组的列表中返回。但是,我收到一个错误。它使用以下代码在管道操作之外工作。任何帮助表示赞赏。

tt <- epi.ccc(bootdata$CalCut_DRY, bootdata$Predicted)   
tt$rho.c$est

【问题讨论】:

  • gdata 中提供几组数据将非常有帮助,以便潜在的回答者可以测试您正在尝试做什么。理想情况下显示您的预期输出以及示例数据。请参阅此处 - stackoverflow.com/questions/5963269/… - 了解有关如何共享数据的一些提示。

标签: r list dplyr


【解决方案1】:

你可以试试:

library(dplyr)

gdata %>% 
 group_by(replicate) %>%
 mutate(tt = epiR::epi.ccc(measured, predicted)$rho.c$est)

如果组的rho.c$est 值相同,那么您可能可以使用summarise 而不是mutate

【讨论】:

    猜你喜欢
    • 2020-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-05
    • 2021-03-01
    • 1970-01-01
    • 2016-08-30
    • 1970-01-01
    相关资源
    最近更新 更多