Я пытаюсь написать базовую c функцию с именем change_year
, которая принимает два аргумента: значение типа Date и год (число). Если пользователь передает аргументы «2020-01-06» и «2025» в функции, он должен вернуть «2025-01-06» из функции.
Сейчас я пытаюсь преобразовать аргумент типа данных в строку, извлечь месяц и день из строки даты, объединить аргумент года со строкой месяца и дня и, наконец, преобразовать новый год снова в тип данных
Мой код в настоящее время:
#1.
spring_break <- as.Date("2020/03/21")
#2.
class(spring_break)
#3.
today <- Sys.Date()
#4.
days_to_break <- spring_break - today
print(paste("Time difference of", days_to_break, "days"))
#5.
change_year <- function(date, year)
date_as_string <- as.character(date)
substr(date_as_string, 5, 10)
paste(date_as_string, year)
as.Date(date_as_string)
#6.
spring_break_2025 <- change_year(spring_break, 2025)
print(spring_break_2025)
class(spring_break_2025)
Однако, когда я пытаюсь выполнить функцию, возвращаются следующие ошибки
> #5.
> change_year <- function(date, year)
+ date_as_string <- as.character(date)
> substr(date_as_string, 5, 10)
Error in as.character(x) :
cannot coerce type 'closure' to vector of type 'character'
> paste(date_as_string, year)
Error in paste(date_as_string, year) : object 'year' not found
> as.Date(date_as_string)
Error in as.Date.default(date_as_string) :
do not know how to convert 'date_as_string' to class “Date”