Некоторые функции tidyverse
возвращают кадры данных, но некоторые возвращают тиблы. Я не могу найти никаких ресурсов, по которым функции возвращают какой тип данных, и я не вижу никакой реальной предсказуемой модели. Вот несколько примеров для иллюстрации:
library(tidyverse)
# Returns dataframe
df1 <- iris %>% mutate(newcol = mean(Sepal.Length))
df2 <- iris %>% filter(Sepal.Length > 5)
df3 <- iris %>% select(Sepal.Length, Species)
class(df1); class(df2); class(df3)
[1] "data.frame"
[1] "data.frame"
[1] "data.frame"
# Returns tibble
df4 <- iris %>% add_count(Species)
df5 <- iris %>% pivot_longer(cols = -Species)
df6 <- iris %>% group_by(Species) %>% mutate(newcol = mean(Sepal.Length))
class(df4); class(df5); class(df6)
[1] "tbl_df" "tbl" "data.frame"
[1] "tbl_df" "tbl" "data.frame"
[1] "grouped_df" "tbl_df" "tbl" "data.frame"
Есть ли способ определить тип возвращаемого значения из функции? Или, может быть, есть ресурс, по которому функции возвращают какой тип данных в Tidyverse? Большая часть кода R будет работать одинаково на столбцах и фреймах данных, но есть важные различия, такие как поведение по умолчанию для извлечения столбца, где drop = FALSE
- поведение по умолчанию для столбцов. Я знаю, что всегда могу изменить типы вручную, но при работе с большими объемами устаревшего кода было бы невероятно полезно знать