打印时,默认只打印前 20 列。要覆盖,可以使用设置 options(readr.num_columns)
来修改它(值 0 将关闭打印)。
用法
spec_delim(
file,
delim = NULL,
quote = "\"",
escape_backslash = FALSE,
escape_double = TRUE,
col_names = TRUE,
col_types = list(),
col_select = NULL,
id = NULL,
locale = default_locale(),
na = c("", "NA"),
quoted_na = TRUE,
comment = "",
trim_ws = FALSE,
skip = 0,
n_max = 0,
guess_max = 1000,
name_repair = "unique",
num_threads = readr_threads(),
progress = show_progress(),
show_col_types = should_show_types(),
skip_empty_rows = TRUE,
lazy = should_read_lazy()
)
spec_csv(
file,
col_names = TRUE,
col_types = list(),
col_select = NULL,
id = NULL,
locale = default_locale(),
na = c("", "NA"),
quoted_na = TRUE,
quote = "\"",
comment = "",
trim_ws = TRUE,
skip = 0,
n_max = 0,
guess_max = 1000,
name_repair = "unique",
num_threads = readr_threads(),
progress = show_progress(),
show_col_types = should_show_types(),
skip_empty_rows = TRUE,
lazy = should_read_lazy()
)
spec_csv2(
file,
col_names = TRUE,
col_types = list(),
col_select = NULL,
id = NULL,
locale = default_locale(),
na = c("", "NA"),
quoted_na = TRUE,
quote = "\"",
comment = "",
trim_ws = TRUE,
skip = 0,
n_max = 0,
guess_max = 1000,
progress = show_progress(),
name_repair = "unique",
num_threads = readr_threads(),
show_col_types = should_show_types(),
skip_empty_rows = TRUE,
lazy = should_read_lazy()
)
spec_tsv(
file,
col_names = TRUE,
col_types = list(),
col_select = NULL,
id = NULL,
locale = default_locale(),
na = c("", "NA"),
quoted_na = TRUE,
quote = "\"",
comment = "",
trim_ws = TRUE,
skip = 0,
n_max = 0,
guess_max = 1000,
progress = show_progress(),
name_repair = "unique",
num_threads = readr_threads(),
show_col_types = should_show_types(),
skip_empty_rows = TRUE,
lazy = should_read_lazy()
)
spec_table(
file,
col_names = TRUE,
col_types = list(),
locale = default_locale(),
na = "NA",
skip = 0,
n_max = 0,
guess_max = 1000,
progress = show_progress(),
comment = "",
show_col_types = should_show_types(),
skip_empty_rows = TRUE
)
参数
- file
-
文件路径、连接或文字数据(单个字符串或原始向量)。
以
.gz
、.bz2
、.xz
或.zip
结尾的文件将自动解压缩。将自动下载以http://
、https://
、ftp://
或ftps://
开头的文件。远程gz文件也可以自动下载并解压。文字数据对于示例和测试最有用。要被识别为文字数据,输入必须用
I()
包装,是包含至少一个换行符的字符串,或者是至少包含一个带有换行符的字符串的向量。使用值
clipboard()
将从系统剪贴板读取。 - delim
-
用于分隔记录中的字段的单个字符。
- quote
-
用于引用字符串的单个字符。
- escape_backslash
-
文件是否使用反斜杠来转义特殊字符?这比
escape_double
更通用,因为反斜杠可用于转义分隔符、引号字符,或添加特殊字符,例如\\n
。 - escape_double
-
文件是否通过加倍引号来转义引号?即,如果此选项为
TRUE
,则值""""
表示单引号\"
。 - col_names
-
TRUE
、FALSE
或列名称的字符向量。如果
TRUE
,输入的第一行将用作列名称,并且不会包含在 DataFrame 中。如果FALSE
,将自动生成列名称:X1、X2、X3 等。如果
col_names
是字符向量,则这些值将用作列的名称,并且输入的第一行将被读入输出数据帧的第一行。缺少 (
NA
) 列名将生成警告,并用虚拟名称...1
、...2
等进行填充。重复的列名将生成警告并使其唯一,请参阅name_repair
来控制其方式完毕。 - col_types
-
NULL
、cols()
规范或字符串之一。有关更多详细信息,请参阅vignette("readr")
。如果是
NULL
,则所有列类型都将从输入的guess_max
行推断出来,散布在整个文件中。这很方便(而且快速),但不够稳健。如果猜测的类型错误,您需要增加guess_max
或自己提供正确的类型。由
list()
或cols()
创建的列规范必须为每一列包含一个列规范。如果您只想读取列的子集,请使用cols_only()
。或者,您可以使用紧凑的字符串表示形式,其中每个字符代表一列:
-
c = 字符
-
我 = 整数
-
n = 数字
-
d = 双
-
l = 逻辑
-
f = 因子
-
D = 日期
-
T = 日期时间
-
t = 时间
-
? = 猜猜
-
_ 或 - = 跳过
默认情况下,读取没有列规范的文件将打印一条消息,显示
readr
猜测的内容。要删除此消息,请设置show_col_types = FALSE
或设置 `options(readr.show_col_types = FALSE)。 -
- col_select
-
要包含在结果中的列。您可以使用与
dplyr::select()
相同的mini-language 来按名称引用列。使用c()
可以使用多个选择表达式。尽管这种用法不太常见,col_select
也接受数字列索引。有关选择语言的完整详细信息,请参阅?tidyselect::language
。 - id
-
用于存储文件路径的列的名称。当读取多个输入文件并且文件路径中有数据(例如数据收集日期)时,这非常有用。如果
NULL
(默认值)则不会创建额外的列。 - locale
-
区域设置控制默认值因地而异。默认区域设置为 US-centric(如 R),但您可以使用
locale()
创建自己的区域设置来控制默认时区、编码、小数标记、大标记和日/月名称等内容。 - na
-
要解释为缺失值的字符串的字符向量。将此选项设置为
character()
以指示没有缺失值。 - quoted_na
-
引号内的缺失值是否应被视为缺失值(默认)或字符串。从 readr 2.0.0 开始,此参数已被软弃用。
- comment
-
用于标识评论的字符串。注释字符之后的任何文本都将被默默忽略。
- trim_ws
-
在解析每个字段之前是否应该删除前导和尾随空格(ASCII 空格和制表符)?
- skip
-
读取数据之前要跳过的行数。如果提供
comment
,则跳过后任何注释行都将被忽略。 - n_max
-
读取的最大行数。
- guess_max
-
用于猜测列类型的最大行数。永远不会使用超过读取的行数。有关更多详细信息,请参阅
vignette("column-types", package = "readr")
。 - name_repair
-
列名的处理。默认行为是确保列名称为
"unique"
。支持多种修复策略:-
"minimal"
:除了名称的基本存在之外,没有名称修复或检查。 -
"unique"
(默认值):确保名称唯一且不为空。 -
"check_unique"
:没有名称修复,但检查它们是unique
。 -
"universal"
:将名称命名为unique
并进行语法设置。 -
函数:应用自定义名称修复(例如,
name_repair = make.names
用于基本 R 样式的名称)。 -
purrr-style 匿名函数,请参阅
rlang::as_function()
。
此参数作为
repair
传递到vctrs::vec_as_names()
。有关这些条款以及用于执行这些条款的策略的更多详细信息,请参阅此处。 -
- num_threads
-
用于初始解析和延迟读取数据的处理线程数。如果您的数据在字段中包含换行符,解析器应自动检测到这一点并回退到仅使用一个线程。但是,如果您知道文件在带引号的字段中包含换行符,那么显式设置
num_threads = 1
是最安全的。 - progress
-
显示进度条?默认情况下,它只会在交互式会话中显示,而不会在编织文档时显示。可以通过将选项
readr.show_progress
设置为FALSE
来禁用自动进度条。 - show_col_types
-
如果是
FALSE
,则不显示猜测的列类型。如果TRUE
始终显示列类型,即使提供了列类型。如果NULL
(默认)仅在col_types
参数未显式提供列类型时显示列类型。 - skip_empty_rows
-
空白行应该被完全忽略吗?即,如果此选项是
TRUE
,则根本不会表示空白行。如果是FALSE
,则它们将由所有列中的NA
值表示。 - lazy
-
懒惰地读取值?默认情况下,这是
FALSE
,因为延迟读取文件时有一些特殊的考虑因子,这导致了一些用户的错误。具体来说,读取然后写回同一个文件时,事情会变得很棘手。但是,一般来说,惰性读取 (lazy = TRUE
) 有很多好处,特别是对于交互式使用以及当您的下游工作仅涉及行或列的子集时。在
should_read_lazy()
和vroom::vroom()
的altrep
参数的文档中了解更多信息。
例子
# Input sources -------------------------------------------------------------
# Retrieve specs from a path
spec_csv(system.file("extdata/mtcars.csv", package = "readr"))
#> 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()
#> )
spec_csv(system.file("extdata/mtcars.csv.zip", package = "readr"))
#> 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()
#> )
# Or directly from a string (must contain a newline)
spec_csv(I("x,y\n1,2\n3,4"))
#> cols(
#> x = col_double(),
#> y = col_double()
#> )
# Column types --------------------------------------------------------------
# By default, readr guesses the columns types, looking at 1000 rows
# throughout the file.
# You can specify the number of rows used with guess_max.
spec_csv(system.file("extdata/mtcars.csv", package = "readr"), guess_max = 20)
#> 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()
#> )
相关用法
- R readr spec 检查 DataFrame 的列规格
- R readr datasource 创建源对象。
- R readr melt_delim 返回分隔文件中每个标记的熔化数据(包括 csv 和 tsv)
- R readr read_rds 读/写 RDS 文件。
- R readr read_lines 从文件中读取/写入行
- R readr parse_number 灵活地解析数字
- R readr read_fwf 将固定宽度文件读入 tibble
- R readr read_builtin 从包中读取内置对象
- R readr Tokenizers 分词器。
- R readr melt_table 返回空格分隔文件中每个标记的熔化数据
- R readr date_names 创建或检索日期名称
- R readr type_convert 重新转换现有 DataFrame 中的字符列
- R readr locale 创建语言环境
- R readr write_delim 将数据帧写入分隔文件
- R readr parse_vector 解析字符向量。
- R readr with_edition 暂时更改活动阅读器版本
- R readr read_delim 将分隔文件(包括 CSV 和 TSV)读入 tibble
- R readr format_delim 将 DataFrame 转换为分隔字符串
- R readr edition_get 检索当前活动版本
- R readr readr_example 获取 readr 示例的路径
- R readr melt_fwf 返回固定宽度文件中每个标记的熔化数据
- R readr count_fields 计算文件每一行中的字段数
- R readr read_table 将空格分隔的列读入 tibble
- R readr problems 检索解析问题
- R readr parse_guess 使用“最佳”类型进行解析
注:本文由纯净天空筛选整理自Hadley Wickham等大神的英文原创作品 Generate a column specification。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。