Функции, возвращающие NULL
Во всех предыдущих упражнениях предполагалось, что функции, применяемые к векторам и спискам, возвращают осмысленный результат. Например, функция tolower() просто возвращает строки, в которых все символы переведены в нижний регистр. Однако так бывает не всегда. Предположим, вы хотите отобразить структуру каждого элемента списка. Для этого можно использовать функцию str(), которая возвращает NULL:
lapply(list(1, "a", TRUE), str)
Этот вызов фактически возвращает список того же размера, что и входной, содержащий исключительно значения NULL. При этом вызов
str(TRUE)
сам по себе выводит в консоль только структуру логического значения, но не NULL. Это объясняется тем, что str() внутренне использует invisible(), которая возвращает невидимую копию результата — в данном случае NULL. Благодаря этому результат не выводится на экран, если он не присвоен переменной.
Что вернёт следующий фрагмент кода (переменная split_low уже доступна в рабочей среде)? Постарайтесь обдумать ответ самостоятельно, прежде чем запускать код в консоли!
lapply(split_low, function(x) {
if (nchar(x[1]) > 5) {
return(NULL)
} else {
return(x[2])
}
})
Это упражнение является частью курса
Intermediate R
Практическое интерактивное упражнение
Превратите теорию в практику с помощью одного из наших интерактивных упражнений
Начать упражнение