1. Učit se
  2. /
  3. Kurzy
  4. /
  5. Середній рівень R

Connected

cvičení

Застосування функцій, що повертають NULL

У всіх попередніх вправах припускалося, що функції, застосовані до векторів і списків, справді повертають змістовний результат. Наприклад, функція tolower() просто повертає рядки з літерами у нижньому регістрі. Так буде не завжди. Припустімо, ви хочете відобразити структуру кожного елемента списку. Для цього можна використати функцію str(), яка повертає NULL:

lapply(list(1, "a", TRUE), str)

Цей виклик насправді повертає список того самого розміру, що й вхідний список, який містить лише значення NULL. З іншого боку, виклик

str(TRUE)

сам по собі лише друкує структуру логічного значення в консолі, а не NULL. Це тому, що str() під капотом використовує invisible(), яка повертає невидиму копію значення, що повертається, у цьому випадку NULL. Це запобігає виведенню, якщо результат str() не присвоєно змінній.

Що поверне наступний фрагмент коду (об'єкт split_low уже доступний у робочому середовищі)? Спробуйте обміркувати результат, перш ніж просто запускати його в консолі!

lapply(split_low, function(x) {
  if (nchar(x[1]) > 5) {
    return(NULL)
  } else {
    return(x[2])
  }
})

Pokyny

50 XP

Možné odpovědi