首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用dplyr group_by()和distinct()而不丢失一个变量

使用dplyr group_by()和distinct()而不丢失一个变量
EN

Stack Overflow用户
提问于 2020-09-30 22:19:26
回答 1查看 25关注 0票数 1

我有一个名为data_logistic的数据帧,它有三列: sim、时间和感染。

我使用以下命令最大限度地消除了所有感染的重复:

代码语言:javascript
运行
复制
library(dplyr)
data_logistic_small <- 
    data_logistic %>% 
    group_by(sim1.2) %>%
    distinct(infected1)

但是,当我这样做时,我丢失了时间列,有没有一种方法可以保留所有三列,同时使用distinct函数删除所有重复的感染值?

这是一个可重复使用的data_frame,这不是真实的数据帧,但问题仍然存在:

代码语言:javascript
运行
复制
structure(list(sim1.2 = c("sim1", "sim1", "sim1", "sim1", "sim2", 
"sim2", "sim2", "sim2", "sim3", "sim3", "sim3", "sim3", "sim4", 
"sim4", "sim4", "sim4", "sim5", "sim5", "sim5", "sim5", "sim6", 
"sim6", "sim6", "sim6", "sim7", "sim7", "sim7", "sim7", "sim8", 
"sim8", "sim8", "sim8", "sim9", "sim9", "sim9", "sim9", "sim10", 
"sim10", "sim10", "sim10", "sim11", "sim11", "sim11", "sim11", 
"sim12", "sim12", "sim12", "sim12", "sim13", "sim13", "sim13", 
"sim13", "sim14", "sim14", "sim14", "sim14", "sim15", "sim15", 
"sim15", "sim15", "sim16", "sim16", "sim16", "sim16", "sim17", 
"sim17", "sim17", "sim17", "sim18", "sim18", "sim18", "sim18", 
"sim19", "sim19", "sim19", "sim19", "sim20", "sim20", "sim20", 
"sim20", "sim21", "sim21", "sim21", "sim21", "sim22", "sim22", 
"sim22", "sim22", "sim23", "sim23", "sim23", "sim23", "sim24", 
"sim24", "sim24", "sim24", "sim25", "sim25", "sim25", "sim25", 
"sim26", "sim26", "sim26", "sim26", "sim27", "sim27", "sim27", 
"sim27", "sim28", "sim28", "sim28", "sim28", "sim29", "sim29", 
"sim29", "sim29", "sim30", "sim30", "sim30", "sim30", "sim31", 
"sim31", "sim31", "sim31", "sim32", "sim32", "sim32", "sim32", 
"sim33", "sim33", "sim33", "sim33", "sim34", "sim34", "sim34", 
"sim34", "sim35", "sim35", "sim35", "sim35", "sim36", "sim36", 
"sim36", "sim36"), time1 = c(10, 50, 100, 200, 10, 50, 100, 200, 
10, 50, 100, 200, 10, 50, 100, 200, 10, 50, 100, 200, 10, 50, 
100, 200, 10, 50, 100, 200, 10, 50, 100, 200, 10, 50, 100, 200, 
10, 50, 100, 200, 10, 50, 100, 200, 10, 50, 100, 200, 10, 50, 
100, 200, 10, 50, 100, 200, 10, 50, 100, 200, 10, 50, 100, 200, 
10, 50, 100, 200, 10, 50, 100, 200, 10, 50, 100, 200, 10, 50, 
100, 200, 10, 50, 100, 200, 10, 50, 100, 200, 10, 50, 100, 200, 
10, 50, 100, 200, 10, 50, 100, 200, 10, 50, 100, 200, 10, 50, 
100, 200, 10, 50, 100, 200, 10, 50, 100, 200, 10, 50, 100, 200, 
10, 50, 100, 200, 10, 50, 100, 200, 10, 50, 100, 200, 10, 50, 
100, 200, 10, 50, 100, 200, 10, 50, 100, 200), infected1 = c(200, 
1000, 1000, 1000, 200, 1000, 1000, 1000, 200, 1000, 1000, 1000, 
200, 1000, 1000, 1000, 200, 1000, 1000, 1000, 200, 1000, 1000, 
1000, 200, 1000, 1000, 1000, 200, 1000, 1000, 1000, 200, 1000, 
1000, 1000, 200, 1000, 1000, 1000, 200, 1000, 1000, 1000, 200, 
1000, 1000, 1000, 200, 1000, 1000, 1000, 200, 1000, 1000, 1000, 
200, 1000, 1000, 1000, 200, 1000, 1000, 1000, 200, 1000, 1000, 
1000, 200, 1000, 1000, 1000, 200, 1000, 1000, 1000, 200, 1000, 
1000, 1000, 200, 1000, 1000, 1000, 200, 1000, 1000, 1000, 200, 
1000, 1000, 1000, 200, 1000, 1000, 1000, 200, 1000, 1000, 1000, 
200, 1000, 1000, 1000, 200, 1000, 1000, 1000, 200, 1000, 1000, 
1000, 200, 1000, 1000, 1000, 200, 1000, 1000, 1000, 200, 1000, 
1000, 1000, 200, 1000, 1000, 1000, 200, 1000, 1000, 1000, 200, 
1000, 1000, 1000, 200, 1000, 1000, 1000, 200, 1000, 1000, 1000
)), class = "data.frame", row.names = c(NA, -144L))
EN

回答 1

Stack Overflow用户

发布于 2020-09-30 22:45:09

非常简单的解决方案,使用

代码语言:javascript
运行
复制
%>% distinct (infected, .keep_all=TRUE).
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64139565

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档