我有一组数据,其中有一个类别的列和另一个子类别的列。但是,某些类别数据不正确。我想根据子类别修复那些不正确的类别数据。
例如,我们有两个类别:A和B以及子类别A_sub和B_sub。但是,类别的条目之一被错误地输入为“其他”,但其子类别为“ A_sub”(请参见下面的代码)。是否有任何优雅的方式将类别列下的“其他”更改为“ A”?
data <- data.frame("category" = c("A", "B", "B", "A", "Others", "Others"), "subcategory" = c("A_sub", "B_sub", "A_sub", "A_sub", "A_sub", "A_sub"))
预期输出为:
谢谢!
答案 0 :(得分:0)
使用dplyr可以在mutate语句中使用ifelse语句。所以您可以这样:
data <- data %>%
dplyr::mutate(category = ifelse(category=="A" & subcategory=="Other", "A_sub", .$subcategory)
答案 1 :(得分:0)
如果您知道子类别是正确的,为什么不从子类别字符串中提取A / B并替换类别,就像这样:
data %>% mutate(category = sub("_.*", "",subcategory))