Multi podmienené case_when v R

0

Otázka

Snažím sa pridať nový stĺpec (farba), aby moje údaje rám. Hodnota v riadku závisí od hodnoty v ďalších dvoch stĺpcov. Napríklad, ak sa trieda hodnota je rovná 4 a Metro_status hodnota je rovná Metro, chcem konkrétne hodnoty vrátené v príslušnom riadku v novom stĺpci. Snažil som sa robiť to s case_when pomocou dplyr a fungovalo to... v takej miere.

Väčšina hodnôt farieb výstup, do, farba stĺpca sa nemusíte linka s definovaných podmienok. Napríklad, prvé riadky (Nome Oblasti Sčítania) hodnoty farieb by mal byť "#fcc48b" ale namiesto toho je "#d68182".

Čo robím zle?? TIA!

Tu je môj kód:

#set working directory
  setwd("C:/Users/weirc/OneDrive/Desktop/Undergrad Courses/Fall 2021 Classes/GHY 3814/final project/data")
        
  #load packages
  library(readr)
  library(dplyr)
        
  #load data
  counties <- read_csv("vaxData_counties.csv")
        
  #create new column for class
  updated_county_data <- counties %>%
    mutate(class = case_when(
      Series_Complete >=75 ~ 4,
      Series_Complete >= 50 ~ 3,
      Series_Complete >= 25 ~ 2,
      TRUE ~ 1
    ), color = case_when(
      class == 4 | Metro_status == 'Metro' ~ '#d62023',
      class == 4 | Metro_status == 'Non-metro' ~ '#d68182',
      class == 3 | Metro_status == 'Metro' ~ '#fc9126',
      class == 3 | Metro_status == 'Non-metro' ~ '#fcc48b',
      class == 2 | Metro_status == 'Metro' ~ '#83d921',
      class == 2 | Metro_status == 'Non-metro' ~ '#abd977',
      class == 1 | Metro_status == 'NA' ~ '#7a7a7a'
    ))
  
  View(updated_county_data)
  
  write.csv(updated_county_data, file="county_data_manip/updated_county_data.csv")

Tu je to, čo dát rám vyzerá ako enter image description here

case data-manipulation dplyr r
2021-11-23 23:02:04
1

Najlepšiu odpoveď

0

Poznámka 1:

keď trieda hodnota je rovná 4 a na Metro_status hodnota je rovná Metro

V R (a mnohé programovacie jazyky) & je "a". Používate |, ktorý je ", alebo".

Poznámka 2: Zvážiť zjednodušenie prvé štyri riadky dvoch, od Metro stav nemá vplyv na farbu triedy 4 & 3

Poznámka 3: Na výpočet classuvažujme base::cut(),, pretože je to primerané, ešte jednoduchšie, než dplyr::case_when().

Tu je moja záľuba, keď stupňujúci zložitosť nahrávanie funkcie: https://ouhscbbmc.github.io/data-science-practices-1/coding.html#coding-simplify-recoding

Poznámka 4: Bol to dobrý, TAKŽE príspevok, ale uvidíme, či si môžete zlepšiť svoj ďalší. Prečítajte si a začleniť prvky , Ako spraviť skvelý R reprodukovateľné príklad?. Najmä aspekty používania dput() pre vstup a potom explicitný príklad očakávanej dataset.

2021-11-23 23:41:07

Tiež, stačí pridať niektoré ďalšie farebné prečo OPs verzia chová tak, ako to robí, prvé dva riadky, ktoré začínajú class == 4 návrat platí pre všetky kombinácie Class a Metro_Status okrem Metro_Status == "NA"
Mako212

V iných jazykoch

Táto stránka je v iných jazykoch

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................