Поскольку в tibble задан аргумент сброса по умолчанию, равный FALSE
, то есть, когда вы поднастраиваете только один столбец из фрейма данных, он возвращает вектор чисел c, тогда как при задании поднабора одного столбца из тиббла возвращается тиббл из одного столбца.
Проверьте свои занятия.
class(df[, 1])
#[1] "numeric"
class(tb[, 1])
#[1] "tbl_df" "tbl" "data.frame"
Если вы добавите drop = FALSE
в фрейм данных, он вернет вам фрейм данных.
class(df[, 1, drop = FALSE])
#[1] "data.frame"
Столбец данных / таблица все еще является списком.
is.list(tb[, 1])
#[1] TRUE
is.list(df[, 1, drop = FALSE])
#[1] TRUE
Итак, чтобы ответить на ваш вопрос, да, is.list
всегда возвращает TRUE
в таблице, если вы явно не упомянули drop = TRUE
в таблице из одной колонки.
is.list(tb[, 1, drop = TRUE])
#[1] FALSE