【问题标题】:R dplyr complete with multiple constant columnsR dplyr 包含多个常量列
【发布时间】:2020-06-08 15:49:51
【问题描述】:

我的数据框如下所示:

df <- data.frame("Name"=c("Bob", "Bob", "Emma"), "Age"=c(23,23,78), "Gender"=c("Male", "Male", "Female"), "Item"=c("house", "car", "house"), "Value"=c(5,1,3))
df
  Name Age Gender  Item Value
1  Bob  23   Male house     5
2  Bob  23   Male   car     1
3 Emma  78 Female house     3

我正在尝试用“Item”列的所有现有值“填充”缺失的行,因为我知道“Age”和“Gender”列的值取决于“Name”列。

我尝试在不将两个数据框连接在一起的情况下获得此结果(参见第 4 行):

 Name Age Gender  Item     Value
1  Bob  23   Male house        5
2  Bob  23   Male   car        1
3 Emma  78 Female house        3
4 Emma  78 Female   car  unknown

我尝试了 complete 函数的组合,但它会计算前 3 列的所有可能组合:

library(tidyverse)

df %>% complete(Name, Age, Gender, nesting(Item), fill=list(Value="unknown"))

  Name     Age Gender Item  Value  
 1 Bob      23 Female car   unknown
 2 Bob      23 Female house unknown
 3 Bob      23 Male   car   1      
 4 Bob      23 Male   house 5      
 5 Bob      78 Female car   unknown
 6 Bob      78 Female house unknown
 7 Bob      78 Male   car   unknown
 8 Bob      78 Male   house unknown
 9 Emma     23 Female car   unknown
10 Emma     23 Female house unknown
11 Emma     23 Male   car   unknown
12 Emma     23 Male   house unknown
13 Emma     78 Female car   unknown
14 Emma     78 Female house 3      
15 Emma     78 Male   car   unknown
16 Emma     78 Male   house unknown

【问题讨论】:

    标签: r dplyr


    【解决方案1】:

    其实我很接近:

    df %>% complete(nesting(Name, Age, Gender), Item, fill=list(Value="unknown"))
     Name    Age Gender Item  Value  
    1 Bob      23 Male   car   1      
    2 Bob      23 Male   house 5      
    3 Emma     78 Female car   unknown
    4 Emma     78 Female house 3 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-05
      • 2016-06-20
      • 1970-01-01
      • 2021-06-16
      • 1970-01-01
      • 2022-06-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多