簡體   English   中英

根據引用更改表列中的值

[英]change value in a column of a table based on a reference

我有一個關於根據參考更新某些行中的值的基本問題。 我相信其他人也問過類似的問題,但我找不到確切的答案。 以下是我的問題的描述。 如果有人可以在這里提出答案鏈接或提供解決方案,那就太好了。 先感謝您。

我有一個超過 10,000 行的表,如下所示:

        Quality       City
a1      pending        NY
a2      pending        LA
a3      pending        LA
a4      pending        SF
a5      pending        SF
a6      pending        NY
a7      pending      Chicago
...
a10000  pending        DC

我想根據參考的子集更新“質量”列中的名稱,如下所示:

       Quality        City
a1      bad            NY
a3      good           LA
a5      good           SF
a6      bad            NY
...
a200    good         Chicago

這是我正在尋找的結果:

       Quality        City
a1      bad            NY
a2      pending        LA
a3      good           LA
a4      pending        SF
a5      good           SF
a6      bad            NY
a7      pending      Chicago
...
a200    good         Chicago
...
a10000  pending        DC

我們可以使用left_join

library(dplyr)
left_join(df1, df2, by = 'City') %>%
      mutate(Quality = Quality.y)

我們可以做一個full_join ,然后coalesce質量列:

library(tidyverse)  
df1 %>% 
   rownames_to_column("id") %>% 
   full_join(rownames_to_column(df2, "id"), by=c("id", "City")) %>% 
   mutate(Quality = coalesce(Quality.y, Quality.x), Quality.x = NULL, Quality.y = NULL)
          id    City Quality
    1     a1      NY     bad
    2     a2      LA pending
    3     a3      LA    good
    4     a4      SF pending
    5     a5      SF    good
    6     a6      NY     bad
    7     a7 Chicago pending
    8 a10000      DC pending
    9   a200 Chicago    good

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM