【问题标题】:Creating a column in R based on matching values from one data frame to another [duplicate]根据从一个数据框到另一个数据框的匹配值在 R 中创建一列 [重复]
【发布时间】:2022-11-23 03:02:48
【问题描述】:

我有 2 个数据框。一个是维修成本数据,另一个是零件编号和零件名称的列表。他们看起来是这样的。我需要将部件号和部件名称组合到 df1 中的一个变量中,这样我就可以在 ggplot 图上显示两者。

df1:零件编号:c(A123、A321、A231、A231、A123、A321) 维修成本:c(150, 230, 100, 120, 180, 120)

df2: 零件编号: c(A321, A231, A123) 零件名称:c(车轮、支柱、支架)

对于 df1 中的每个观察结果,我不仅要显示部件号,还要显示与该部件相关联的名称。如果这可以使用 tidyverse 代码完成,我将不胜感激。

到目前为止,我已经尝试过不同的事情,这是我最接近的事情

Df1$Part.Name<-ifelse(Df1$Part_Num %in% df2$PartNumber,df2$part_name) Df1$Part_Num_Name<-粘贴(Df1$Part_Num,": ",Df1$Part.Name)

【问题讨论】:

  • dplyrdf1 %&gt;% left_join(df2)

标签: r dataframe tidyverse


【解决方案1】:

您可以使用来自 dplyrleft_join

library(dplyr)

df1 <- tibble(
  Part_Number = c("A123", "A321", "A231", "A231", "A123", "A321"),
  Repair_Cost = c(150, 230, 100, 120, 180, 120)
)

df2 <- tibble(
  Part_Number = c("A321", "A231", "A123"),
  Part_Name = c("Wheel", "Strut", "Mount")
)


df1 %>% 
  left_join(df2)
#> Joining, by = "Part_Number"
#> # A tibble: 6 × 3
#>   Part_Number Repair_Cost Part_Name
#>   <chr>             <dbl> <chr>    
#> 1 A123                150 Mount    
#> 2 A321                230 Wheel    
#> 3 A231                100 Strut    
#> 4 A231                120 Strut    
#> 5 A123                180 Mount    
#> 6 A321                120 Wheel

【讨论】:

    猜你喜欢
    • 2020-04-11
    • 2020-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-03
    • 1970-01-01
    相关资源
    最近更新 更多