Как заменить 1,2,3,4 .... 7 на понедельник, вт, ср, четвер .... по-быстрому в R? - PullRequest
0 голосов
/ 27 марта 2019

У меня есть набор данных с колонкой день недели, значение в колонке 1,2,3,4,5,6,7. Я хотел бы заменить на «понедельник, вторник, среда ...». Есть ли способ сделать это по-быстрому? Спасибо!

Я обычно заменяю данные следующим образом:

data$column[data$columnx==a,]<-y

Ответы [ 3 ]

3 голосов
/ 27 марта 2019

Один способ - создать вектор символов всех дней

x <- c(3, 2, 4, 5, 1)
days <- c("Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday")

, а затем просто подмножество

days[x]
#[1] "Wednesday" "Tuesday"   "Thursday"  "Friday"    "Monday" 
2 голосов
/ 27 марта 2019

Быстрый способ - использовать встроенную константу day.name из DescTools, используя значения столбца в качестве индекса

library(DescTools)
data$column <- day.name[data$column]
data$column
#[1] "Friday"    "Wednesday" "Monday"    "Thursday"  "Sunday"    "Tuesday"  NA

data

data <- data.frame(column = c(5, 3, 1, 4, 7, 2, NA))
1 голос
/ 27 марта 2019

Другой подход заключается в преобразовании столбца в 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...