gpt4 book ai didi

r - 通过具有不同 ID 值的列扩展 R 中的数据框

转载 作者:行者123 更新时间:2023-12-01 21:58:56 25 4
gpt4 key购买 nike

我在 R 中有以下数据框

df1 <- data.frame(
"ID" = c("A", "B", "A", "B"),
"Value" = c(1, 2, 5, 5),
"freq" = c(1, 3, 5, 3)
)

我希望获得如下数据框

     Value      freq  ID
1 1 A
2 NA A
3 NA A
4 NA A
5 1 A
1 NA B
2 2 B
3 NA B
4 NA B
5 5 B

我试过下面的代码

library(tidyverse)
df_new <- bind_cols(df1 %>%
select(Value, freq, ID) %>%
complete(., expand(.,
Value = min(df1$Value):max(df1$Value))),)

我得到以下输出

   Value  freq ID   
<dbl> <dbl> <fct>
1 1 A
2 3 B
3 NA NA
4 NA NA
5 5 A
5 3 B

我请求某人帮助我。

最佳答案

使用 tidyr::full_seq 我们可以找到 Value 的完整版本,但是 nesting(full_seq(Value,1) 会返回一个错误:

Error: by can't contain join column full_seq(Value, 1) which is missing from RHS

所以我们需要添加一个名称,因此 nesting(Value=full_seq(Value,1)

library(tidyr)
df1 %>% complete(ID, nesting(Value=full_seq(Value,1)))

# A tibble: 10 x 3
ID Value freq
<fct> <dbl> <dbl>
1 A 1. 1.
2 A 2. NA
3 A 3. NA
4 A 4. NA
5 A 5. 5.
6 B 1. NA
7 B 2. 3.
8 B 3. NA
9 B 4. NA
10 B 5. 3.

关于r - 通过具有不同 ID 值的列扩展 R 中的数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54548830/

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