Опять меня смущает мой учебник по datacamp R. Видеопрезентация пытается объяснить разницу между vapply и sapply и представляет следующий код и выходные данные:
first_and_last <-function(name) {
name <- gsub(" ", "", name)
letters <- strsplit(name, split = "")[[1]]
return(c(first = min(letters), last = max(letters))))
}
sapply(cities, first_and_last)
New York Paris London Tokyo Rio de Janeiro Cape Town
first "e" "a" "d" "k" "a" "a"
last "y" "s" "o" "y" "R" "w"
vapply(cities, first_and_last, character(2))
New York Paris London Tokyo Rio de Janeiro Cape Town
first "e" "a" "d" "k" "a" "a"
last "y" "s" "o" "y" "R" "w"
Как мы видим, результат идентичен. Мне сказали, что это потому, что длина символьного вектора в функции vapply установлена вручную на 2, и если он был установлен на 1, мы столкнемся с ошибкой.
Я не уверен, что понимаю, это отдельные буквы, так зачем нам нужен символьный вектор длиной 2?