gpt4 book ai didi

r - 如何根据列中的两个值过滤行?

转载 作者:行者123 更新时间:2023-12-05 09:31:00 25 4
gpt4 key购买 nike

对 R 完全陌生,我尝试使用 dplyr 包解决这个问题。我想过滤掉并返回同时具有 Import 和 Export 值的国家并分别查看它们。 select、filter等很多方法都试过了,都不行。

Country Year    Quantity    Description Import/Export
A 2001 10 Frozen Export
B 2001 50 Fresh Import
B 2004 20 Frozen Export
C 2003 30 Frozen Import
C 2005 40 Fresh Export
C 2006 60 Frozen Import
D 2007 290 Fresh Import

理想情况下,最终结果应该是这样的:

Country Year    Quantity    Description Import/Export
B 2001 50 Fresh Import
B 2004 20 Frozen Export
C 2003 30 Frozen Import
C 2005 40 Fresh Export
C 2006 60 Frozen Import

最佳答案

我们可以group_by() Country,然后用any "Import/Export"=='Import' and any "过滤所有组"导入/导出""== '导出'

library(dplyr)

df %>% group_by(Country) %>%
filter(any(`Import/Export`=='Import') &
any(`Import/Export`=='Export')) %>%
ungroup()

# A tibble: 5 x 5
Country Year Quantity Description `Import/Export`
<chr> <dbl> <dbl> <chr> <chr>
1 B 2001 50 Fresh Import
2 B 2004 20 Frozen Export
3 C 2003 30 Frozen Import
4 C 2005 40 Fresh Export
5 C 2006 60 Frozen Import

数据

structure(list(Country = c("A", "B", "B", "C", "C", "C", "D"), 
Year = c(2001, 2001, 2004, 2003, 2005, 2006, 2007), Quantity = c(10,
50, 20, 30, 40, 60, 290), Description = c("Frozen", "Fresh",
"Frozen", "Frozen", "Fresh", "Frozen", "Fresh"), `Import/Export` = c("Export",
"Import", "Export", "Import", "Export", "Import", "Import"
)), row.names = c(NA, -7L), class = c("tbl_df", "tbl", "data.frame"
))

关于r - 如何根据列中的两个值过滤行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69143212/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com