gpt4 book ai didi

修复数据框缺失的行

转载 作者:行者123 更新时间:2023-12-04 10:58:13 25 4
gpt4 key购买 nike

我有以下数据框

df <- structure(list(position = c("a", "a", "c"), value = c(1, 1, 2
), name = c("bar", "foo", "foo")), row.names = c(NA, -3L), class = c("tbl_df",
"tbl", "data.frame"))
  position value name 
<chr> <dbl> <chr>
1 a 1 bar
2 a 1 foo
3 c 2 foo

还有一个引用数据框,其中列出了 df$position 中每个值的 4 个条件。

ref <- structure(list(group = c("A", "B", "C", "C"), position = c("a", 
"a", "b", "c")), row.names = c(NA, -4L), class = c("tbl_df",
"tbl", "data.frame"))
# A tibble: 4 x 2
group position
<chr> <chr>
1 A a
2 B a
3 C b
4 C c

我的预期输出是:

  group  position  name  value
1 A a bar 1
2 B a bar 1
3 C b bar NA
4 C c bar NA
5 A a foo 1
6 B a foo 1
7 C b foo NA
8 C c foo 2

df$name 中的每个唯一值都应该有 4 行,基于 df 和 ref 中的位置列。

我试过left_join,穿越,完成都没有用。

最佳答案

tidyverse中,我们可以使用crossing得到组合然后做left_join

library(tidyr)
library(dplyr)
distinct(df, name) %>%
crossing(ref) %>%
left_join(df)
# A tibble: 8 x 4
# name group position value
#* <chr> <chr> <chr> <dbl>
#1 bar A a 1
#2 bar B a 1
#3 bar C b NA
#4 bar C c NA
#5 foo A a 1
#6 foo B a 1
#7 foo C b NA
#8 foo C c 2

关于修复数据框缺失的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60572818/

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