У меня есть набор данных с колонкой день недели, значение в колонке 1,2,3,4,5,6,7. Я хотел бы заменить на «понедельник, вторник, среда ...». Есть ли способ сделать это по-быстрому? Спасибо!
Я обычно заменяю данные следующим образом:
data$column[data$columnx==a,]<-y
Один способ - создать вектор символов всех дней
x <- c(3, 2, 4, 5, 1) days <- c("Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday")
, а затем просто подмножество
days[x] #[1] "Wednesday" "Tuesday" "Thursday" "Friday" "Monday"
Быстрый способ - использовать встроенную константу day.name из DescTools, используя значения столбца в качестве индекса
day.name
DescTools
library(DescTools) data$column <- day.name[data$column] data$column #[1] "Friday" "Wednesday" "Monday" "Thursday" "Sunday" "Tuesday" NA
data <- data.frame(column = c(5, 3, 1, 4, 7, 2, NA))
Другой подход заключается в преобразовании столбца в factor и установке levels Пример:
factor
levels
df <- data.frame(n = c(sample(1:7), NA)) df n 1 5 2 3 3 2 4 4 5 1 6 7 7 6 8 NA df$n <- as.factor(df$n) levels(df$n) <- c("Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday") df n 1 Friday 2 Wednesday 3 Tuesday 4 Thursday 5 Monday 6 Sunday 7 Saturday 8 <NA>