我有一个数据集,其中包含一周中几天的事件数字(1-7,1表示星期一... 7表示星期日)。我已经将它转换为用户可以理解的星期几(星期一,星期二等),只需用该行中的星期一(等)替换每个1的实例。是否有一个图书馆可以更干净地为我做这件事?
答案 0 :(得分:3)
set.seed(42)
x <- sample(1:7, 20, TRUE)
#[1] 7 7 3 6 5 4 6 1 5 5 4 6 7 2 4 7 7 1 4 4
y <- factor(x, labels = c("Monday", "Tuesday",
"Wednesday", "Thursday",
"Friday", "Saturday", "Sunday"),
ordered = TRUE)
# [1] Sunday Sunday Wednesday Saturday Friday Thursday Saturday Monday Friday Friday Thursday Saturday Sunday
#[14] Tuesday Thursday Sunday Sunday Monday Thursday Thursday
#Levels: Monday < Tuesday < Wednesday < Thursday < Friday < Saturday < Sunday
如果您不想要有序因素,请忽略ordered = TRUE
,如果您需要字符向量,请使用as.character
。如果你需要后者,你也可以这样做:
c("Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday")[x]
答案 1 :(得分:0)
{{params}}
从星期五开始索引,因此library(chron)
days = sample(1:7, 10, replace = TRUE)
weekdays(days + 3, abbreviate = FALSE)
将索引设置为星期一。输出是一个有序因子,非常适合绘图目的。