我想將資料框所有列中的特殊字符(例如 ? 和 °F)字串替換為 html 代碼。
special_char <- function(df) {
df %>%
mutate_all(.funs = ~ str_replace_all(.x, pattern = "?", replacement = "®"))
}
但是,此代碼不會®在列中替換 ? 為我想要的。相反, ? 仍然像未檢測到該模式一樣。
uj5u.com熱心網友回復:
如果您只有幾個特定的??符號要更改,那么使用它們的 Unicode 代碼點是最簡單的。例如,要將所有出現的注冊商標符號 (Unicode U00AE) 更改為等效的 html 物體 ( ®),并將任何度數符號 ( U00B0) 更改為物體°,我們可以這樣做:
special_char <- function(df) {
mutate_all(df, .funs = ~ str_replace_all(.x,
c("\u00ae", "\u00b0"),
c("®", "°")))
}
因此,如果您的資料框如下所示:
data <- data.frame(a = c("Stack Overflow?", "451°F"),
b = c("Coca Cola?", "22°F"))
#> a b
#> 1 Stack Overflow? Coca Cola?
#> 2 451°F 22°F
您的函式將轉義所有相關實體:
data %>% special_char()
#> a b
#> 1 Stack Overflow® Coca Cola®
#> 2 451°F 22°F
如果您希望將所有非 ASCII 字符編碼為 html 物體,更通用的解決方案是使用數字物體格式。這不太可讀,但如果您有很多不同的符號要轉義,這可能是首選選項。一個有用的起點是弗利克先生的解決方案here,盡管您需要將此函式矢量化以使其與資料框列一起使用。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/513414.html
