【发布时间】:2022-01-02 10:01:31
【问题描述】:
我正在尝试向我的数据框添加一个新列(颜色)。行中的值取决于其他两列中的值。例如,当 class 值等于 4 并且 Metro_status 值等于 Metro 时,我希望在新列的相应行中返回一个特定值。我尝试用 case_when 使用 dplyr 来执行此操作,并且在一定程度上有效。
输出到颜色列的大部分颜色值不符合定义的条件。例如,第一行(Nome Census Area)颜色值应该是"#fcc48b",而不是"#d68182"。
我做错了什么??蒂亚!
这是我的代码:
#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")
【问题讨论】:
标签: r dplyr case data-manipulation