Где я ошибаюсь в этом коде:
Я запускаю следующее:
df_table <- df_table %>%
mutate(variable = sub(".(.)$","\\1", variable)) %>%
separate(variable, c("Section", "Quintiles"), by = "_")
ggplot() +
geom_point(data = df_table, aes(x = sd, y = er, fill = Quintiles)) +
geom_text(data = df_table, aes(x = sd, y = er, label = Section))
Что дает мне мой график, как и ожидалось.
Однако, когда я пытаюсьчтобы немного очистить данные, запустив следующий код:
df_table <- df_table %>%
mutate(variable = sub(".(.)$","\\1", variable)) %>%
separate(variable, c("Section", "Quintiles"), by = "_") %>%
mutate(Section = str_replace(c("BusinessDescription", "Risk", "MD", "QQDMR"), c("business", "risk", "mgnt", "qualitative"), Section),
Quintiles = str_replace(c("Quantile 1", "Quantile 2", "Quantile 3", "Quantile 4", "Quantile 5"), c("quintile1", "quintile2", "quintile3", "quintile4", "quintile5"), Quintiles))
ggplot() +
geom_point(data = df_table, aes(x = sd, y = er, fill = Quintiles)) +
geom_text(data = df_table, aes(x = sd, y = er, label = Section))
Порядок имен помешан.то есть верхний правый угол должен быть «MD», но он меняется на «QQDMR» ...
Правильно ли я использовал str_replace
?Я попытался использовать str_replace_all
также и получить ту же проблему
df_table <- structure(list(variable = structure(1:20, .Label = c("business_quintile_1",
"business_quintile_2", "business_quintile_3", "business_quintile_4",
"business_quintile_5", "mgnt_quintile_1", "mgnt_quintile_2",
"mgnt_quintile_3", "mgnt_quintile_4", "mgnt_quintile_5", "qualitative_quintile_1",
"qualitative_quintile_2", "qualitative_quintile_3", "qualitative_quintile_4",
"qualitative_quintile_5", "risk_quintile_1", "risk_quintile_2",
"risk_quintile_3", "risk_quintile_4", "risk_quintile_5"), class = "factor"),
er = c(0.00944344775108058, 0.0109492817825732, 0.0100544836634725,
0.0111846535161324, 0.0102474606100841, 0.00870512064459837,
0.0101021642559344, 0.0135188881790885, 0.00714776598705967,
0.0113110293608925, 0.009367997551035, 0.00983281565841901,
0.00925061345025329, 0.0140518126184572, 0.0113932765565336,
0.00985542351988848, 0.00987916453025541, 0.0110155244063546,
0.0105003488159936, 0.011625325276335), sd = c(0.0555353266973089,
0.0612324824773668, 0.0586524509813947, 0.0586421585757461,
0.0607621933769669, 0.056289676912973, 0.0612436251488293,
0.0755471294269228, 0.064717925095145, 0.0650635417478424,
0.0596416153792103, 0.063161151587813, 0.0605161738039561,
0.0624918901956831, 0.0623820475664652, 0.0574219865964818,
0.0610052599119918, 0.0598646639460777, 0.0595189378979581,
0.0594937538495101)), row.names = c(NA, -20L), class = c("data.table",
"data.frame"), .internal.selfref = <pointer: 0x0000000002521ef0>)