Следующий код
if(!is.data.frame(vec)){
stop("This function first requires a data.frame.")
}
предназначен для вывода сообщения об ошибке, если вы не предоставили объект типа data.frame для своей функции. Это проверка типа ввода.
Предоставляемый вами объект:
vec <- c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
- это не data.frame, а числовой c вектор. Поэтому вы получаете ошибку.
Итак, либо вы решите, что ваша функция ожидает, что vec
будет вектором, в этом случае удалите предложения if и, возможно, добавьте
if(!is.numeric(vec)){
stop("Input is not a numeric vector")
}
, чтобы проверить это. Или вы или вы предоставляете data.frame своей функции
vec <- data.frame(x = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10))
Однако тогда вам нужно исправить еще одну ошибку в вашей функции: вы забыли присвоить результат
as.numeric(t(vec))
в любую переменную (используя <-
), поэтому этот код не может иметь никакого эффекта