gpt4 book ai didi

r - 如何删除具有重复元素的行?

转载 作者:行者123 更新时间:2023-12-04 07:25:09 24 4
gpt4 key购买 nike

我有一个看起来像这样的数据框(但对于每个美国县)



状态
邻居县
邻居状态


鲍德温县
AL
克拉克县
不适用

鲍德温县
AL
埃斯坎比亚县
FL

鲍德温县
AL
莫比尔县
不适用

鲍德温县
AL
门罗县
不适用

巴伯县
AL
戴尔县
不适用

巴伯县
AL
亨利县
不适用


我只对与县相邻的州感兴趣,所以我想删除重复的数据以获得这个(步骤 1):



状态
邻居状态


鲍德温县
AL
不适用

鲍德温县
AL
FL

巴伯县
AL
不适用


然后像这样更改数据框的排序(步骤 2):



状态
邻居状态_1
邻居状态_2
邻居状态_3


鲍德温县
AL
FL
不适用
不适用

鲍德温县
AL
不适用
不适用
不适用


在第 1 步中,我删除了“neighbor_county”列;但是,我没有设法为每个不同的县删除“neighbor_state”列中的重复项。我曾尝试使用 unique 函数,但我似乎无法让它工作,以至于它只能删除每个不同县的重复项。

最佳答案

第一步,您可以删除 neighbour_county栏目及用途unique() :

df$neighbor_county <- NULL
unique(df)
返回
          county state neighbor_state
1 Baldwin_County AL NA
2 Baldwin_County AL FL
5 Barbour_County AL NA
使用 dplyr 的替代方法:
df %>% 
select(-neighbor_county) %>%
distinct()
对于你的第二步,我提出一个建议:
library(tidyr)
library(dplyr)

df %>%
group_by(county) %>%
select(-neighbor_county) %>%
mutate(n = row_number()) %>%
pivot_wider(names_from=n, names_prefix="neighbor_state_", values_from=neighbor_state) %>%
ungroup()
返回
# A tibble: 2 x 6
county state neighbor_state_1 neighbor_state_2 neighbor_state_3 neighbor_state_4
<chr> <chr> <chr> <chr> <chr> <chr>
1 Baldwin_County AL 'NA' 'FL' 'NA' 'NA'
2 Barbour_County AL 'NA' 'NA' NA NA
但我不确定,如果这就是你要找的。
用于去除翻倍 NA -值,你可以使用
df %>% 
group_by(county) %>%
select(-neighbor_county) %>%
distinct() %>%
mutate(n = row_number()) %>%
pivot_wider(names_from=n, names_prefix="neighbor_state_", values_from=neighbor_state) %>%
ungroup()
数据
structure(list(county = c("Baldwin_County", "Baldwin_County", 
"Baldwin_County", "Baldwin_County", "Barbour_County", "Barbour_County"
), state = c("AL", "AL", "AL", "AL", "AL", "AL"), neighbor_county = c("Clarke_County",
"Escambia_County", "Mobile_County", "Monroe_County", "Dale_County",
"Henry_County"), neighbor_state = c("'NA'", "'FL'", "'NA'", "'NA'",
"'NA'", "'NA'")), problems = structure(list(row = 6L, col = "neighbor_state",
expected = "", actual = "embedded null", file = "literal data"), row.names = c(NA,
-1L), class = c("tbl_df", "tbl", "data.frame")), class = "data.frame", row.names = c(NA,
-6L), spec = structure(list(cols = list(county = structure(list(), class = c("collector_character",
"collector")), state = structure(list(), class = c("collector_character",
"collector")), neighbor_county = structure(list(), class = c("collector_character",
"collector")), neighbor_state = structure(list(), class = c("collector_character",
"collector"))), default = structure(list(), class = c("collector_guess",
"collector")), skip = 1L), class = "col_spec"))

关于r - 如何删除具有重复元素的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68245914/

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