Установите дату для воскресенья и субботы, равную пятнице

У меня есть вопрос о проблеме с моим анализом данных. У меня есть большой набор данных с оценками тональности для каждого дня недели, но я хочу добавить выходные к пятницам. Это по той причине, что я могу делать прогнозы акций на понедельник. Моя идея заключалась в том, чтобы дать им одну и ту же дату, а затем я ежедневно собираю их. Пример соответствующей части моего вывода данных:

Год: 01.01.2019 02.01.2019 03.01.2019 04.01.2019 05.01.2019 06.01.2019 07.01.2019 День недели UTC: 1 2 3 4 5 6 7

поэтому цель состоит в том, чтобы даты 7 (суббота) и 1 (воскресенье) были равны датам 6 (пятница)

Я попробовал пару кодов, чтобы понять это:

1)

ifelse(Brexit_data$weekday == '7', as.POSIXct(Brexit_data$year - as.difftime(1, units = "days")), as.POSIXct(Brexit_data$year - as.difftime(0, units = "days")))`

ifelse(Brexit_data$weekday == '7', as.date(Brexit_data$year) -1, as.date(Brexit_data$year))

Оба возвращали другой тип структуры дат, например:

[1] 1549065600 1549065600 1549065600 1549065600 1549065600 1549065600 1549065600 1549065600 1549065600 1549065600 1549065600 1549065600 1549065600 1549065600

2)

Brexit_data$year <-  Brexit_data$year[Brexit_data$weekday == '7'] - as.difftime(1, units = "days")
Brexit_data$year <-  Brexit_data$year[Brexit_data$weekday == '7'] -1

Что вернуло следующее: Ошибка в $<-.data.frame(*tmp*, год, значение = c(1556755200, 1556755200,: замена имеет 4206 строк, данные имеют 29299*

Таким образом, он не может по какой-то причине не изменять переменные с учетом условия.

Переполнение стека всегда было для меня источником помощи в поиске решений. Надеюсь, кто-то может помочь мне с этой проблемой. Мне бы очень помог!


person Danny    schedule 12.03.2020    source источник
comment
(1) ifelse отбрасывает класс, поэтому, если вы хотите, чтобы результат был POSIXct, вам нужно преобразовать вне от ifelse. Из-за этого эта часть вашего вопроса повторяется. (2) У вас есть несколько вопросов, пожалуйста, не делайте этого. (3) Ваша вторая проблема очевидна в некотором смысле: вы подмножаете справа, но не слева от задания. Добавьте [...] к ..$year[...] <- слева.   -  person r2evans    schedule 12.03.2020
comment
@ r2evans спасибо за ваш ответ. Это помогло! Я также нашел здесь альтернативу: stackoverflow.com/questions/6668963/ Итак, для тех, у кого возникнет такая же проблема в будущем, вы можете попробовать ответ по ссылке выше!   -  person Danny    schedule 12.03.2020
comment
Эта ссылка буквально закрыта как дублирующее уведомление в верхней части вопроса.   -  person r2evans    schedule 12.03.2020