Перевести месяцы в г с итальянского на английский - PullRequest
0 голосов
/ 24 апреля 2019

Я строю некоторые данные, и мне нужно создать несколько боксов.Разные категории - месяцы, и, поскольку мне нужно, чтобы они отображались по порядку, а не по алфавиту, я преобразовал дату в коэффициент с

dd.tot$month <- factor(format(dd.tot$month, "%b"), 
                       levels=format(ISOdate(2000, 1:12, 1), "%b"))

Поскольку мой системный язык (и родной язык в этом отношении)) - итальянский, столбец месяца в фрейме данных dd.tot - на итальянском.Но мне нужно, чтобы они использовали английскую аббревиатуру (статья полностью на английском языке, и это будет единственная часть на итальянском языке).Я попытался создать новый вектор с различными аббревиатурами, чтобы применить к столбцу с

 mymonths <- c("Jan","Feb","Mar",
               "Apr","May","Jun",
               "Jul","Aug","Sep",
               "Oct","Nov","Dec")

dd.tot$month <- mymonths[ dd.tot$month ]

Но когда я строю его с помощью ggplot, они отображаются в алфавитном порядке.Как мне их перевести и получить как фактор?

Ответы [ 2 ]

2 голосов
/ 24 апреля 2019

Вот пример некоторых данных, где мы исправляем две проблемы.

# My data
df <- data.frame(mymonths = c("Jan","Feb", "Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"),
                 somevalue = c(1:12))

# Plotting
library(ggplot2)
ggplot(df, aes(mymonths, somevalue)) + geom_bar(stat="identity")

enter image description here

# Fixing order
df$mymonths <- factor(df$mymonths, levels = c("Jan","Feb", "Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"))

# Plotting
ggplot(df, aes(mymonths, somevalue)) + geom_bar(stat="identity")

enter image description here

# Fixing labels
df$mymonths <- factor(df$mymonths, 
                      levels = c("Jan","Feb", "Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"),
                      labels = c("Jan_cool","Feb_cool", "Mar_cool","Apr_cool","May_cool","Jun_cool","Jul_cool","Aug_cool","Sep_cool","Oct_cool","Nov_cool","Dec_cool"))

# Plotting
ggplot(df, aes(mymonths, somevalue)) + geom_bar(stat="identity")

enter image description here

0 голосов
/ 24 апреля 2019

Вы можете установить местный язык на английский.Просто введите это:

 Sys.setlocale("LC_TIME", "English")

Тогда вам не нужно переводить их, и вы можете заказать их так:

mymonths <- format(seq.Date(from = as.Date("2018-01-01"), to = as.Date("2018-12-01"), by = "m"), "%b")

dd.tot$month <- factor(format(dd.tot$month, %b), levels = mymonths)

Если вы хотите вернуть его на итальянский, просто введите

Sys.setlocale("LC_TIME", "Italian")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...