R - read_csv 原因消息:使用 `spec()` 检索此数据的完整列规范

R - read_csv cause message: Use `spec()` to retrieve the full column specification for this data

我刚刚完成了用于数据分析的 R 课程学习,现在我正在独立研究案例。

由于我是初学者,请帮助我理解这个我在课程中没有遇到的问题。

我已经导入了 csv 文件,我想将它们分配给具有更好名称的变量。

我正在使用以下软件包:tidyverse、readr、lubridate、ggplot2、janitor、tidyr、skimr。

这是我的代码:

daily_Activity <- read_csv("../input/bellabeat-dataset/dailyActivity_merged.csv")
daily_Calories <- read_csv("../input/bellabeat-dataset/dailyCalories_merged.csv")
daily_Intesities <- read_csv("../input/bellabeat-dataset/dailyIntensities_merged.csv")
daily_Steps <- read_csv("../input/bellabeat-dataset/dailySteps_merged.csv")
hourly_Calories <- read_csv("../input/bellabeat-dataset/hourlyCalories_merged.csv")
sleep_Day <- read_csv("../input/bellabeat-dataset/sleepDay_merged.csv")
weight_Log <- read_csv("../input/bellabeat-dataset/weightLogInfo_merged.csv")

当我 运行 使用新名称创建新表的代码时,但控制台也向我显示此消息:

ℹ Use `spec()` to retrieve the full column specification for this data.
ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.

我不太明白这是个问题还是我应该忽略它。

资源:

  1. https://readr.tidyverse.org/articles/readr.html
  2. https://readr.tidyverse.org/reference/spec.html
  3. <

列规范

如果在读取文件时必须指定每一列的类型,那将是乏味的。相反 readr,使用一些试探法来猜测每一列的类型。您可以使用 guess_parser():

自行访问这些结果

列规范描述了每列的类型以及 readr 用于猜测类型的策略,因此您无需全部提供。

df <- read_csv(readr_example("mtcars.csv"))

将给予:

Rows: 32 Columns: 11                                                            
-- Column specification ---------------------
Delimiter: ","
dbl (11): mpg, cyl, disp, hp, drat, wt, q...

i Use `spec()` to retrieve the full column specification for this data.
i Specify the column types or set `show_col_types = FALSE` to quiet this message.

如果我们再使用 spec(df):

spec(df)

我们将得到:

cols(
  mpg = col_double(),
  cyl = col_double(),
  disp = col_double(),
  hp = col_double(),
  drat = col_double(),
  wt = col_double(),
  qsec = col_double(),
  vs = col_double(),
  am = col_double(),
  gear = col_double(),
  carb = col_double()
)
  • 基本上在有很多文件和列的情况下readr如果没有指定就会猜测数据类型。这可能会耗费时间。
  • readr无法猜测数据类型的情况下(例如乱七八糟的日期输入)。使用 spec() 我们必须识别并确定此特定列的类型。