该函数已在 readr 中被取代并移至熔化包.
对于某些非矩形数据格式,将数据解析为融合格式(其中每行代表一个标记)可能很有用。
melt_table()
和 melt_table2()
旨在读取每列由一列(或多列)空格分隔的文本数据类型。
melt_table2()
允许列之间有任意数量的空白字符,并且行可以有不同的长度。
melt_table()
更严格,每一行的长度必须相同,并且每行中每个字段的位置相同。它首先找到空列,然后像固定宽度文件一样进行解析。
用法
melt_table(
file,
locale = default_locale(),
na = "NA",
skip = 0,
n_max = Inf,
guess_max = min(n_max, 1000),
progress = show_progress(),
comment = "",
skip_empty_rows = FALSE
)
melt_table2(
file,
locale = default_locale(),
na = "NA",
skip = 0,
n_max = Inf,
progress = show_progress(),
comment = "",
skip_empty_rows = FALSE
)
参数
- file
-
文件路径、连接或文字数据(单个字符串或原始向量)。
以
.gz
、.bz2
、.xz
或.zip
结尾的文件将自动解压缩。将自动下载以http://
、https://
、ftp://
或ftps://
开头的文件。远程gz文件也可以自动下载并解压。文字数据对于示例和测试最有用。要被识别为文字数据,输入必须用
I()
包装,是包含至少一个换行符的字符串,或者是至少包含一个带有换行符的字符串的向量。使用值
clipboard()
将从系统剪贴板读取。 - locale
-
区域设置控制默认值因地而异。默认区域设置为 US-centric(如 R),但您可以使用
locale()
创建自己的区域设置来控制默认时区、编码、小数标记、大标记和日/月名称等内容。 - na
-
要解释为缺失值的字符串的字符向量。将此选项设置为
character()
以指示没有缺失值。 - skip
-
读取数据之前要跳过的行数。
- n_max
-
读取的最大行数。
- guess_max
-
用于猜测列类型的最大行数。永远不会使用超过读取的行数。有关更多详细信息,请参阅
vignette("column-types", package = "readr")
。 - progress
-
显示进度条?默认情况下,它只会在交互式会话中显示,而不会在编织文档时显示。可以通过将选项
readr.show_progress
设置为FALSE
来禁用自动进度条。 - comment
-
用于标识评论的字符串。注释字符之后的任何文本都将被默默忽略。
- skip_empty_rows
-
空白行应该被完全忽略吗?即,如果此选项是
TRUE
,则根本不会表示空白行。如果是FALSE
,则它们将由所有列中的NA
值表示。
也可以看看
melt_fwf()
融合固定宽度文件,其中每列不由空格分隔。 melt_fwf()
对于读取非标准格式的表格数据也很有用。 read_table()
是从空格分隔的文件中读取表格数据的传统方法。
例子
fwf <- readr_example("fwf-sample.txt")
writeLines(read_lines(fwf))
#> John Smith WA 418-Y11-4111
#> Mary Hartford CA 319-Z19-4341
#> Evan Nolan IL 219-532-c301
melt_table(fwf)
#> Warning: `melt_table()` was deprecated in readr 2.0.0.
#> ℹ Please use `meltr::melt_table()` instead
#> # A tibble: 12 × 4
#> row col data_type value
#> <dbl> <dbl> <chr> <chr>
#> 1 1 1 character John
#> 2 1 2 character Smith
#> 3 1 3 character WA
#> 4 1 4 character 418-Y11-4111
#> 5 2 1 character Mary
#> 6 2 2 character Hartford
#> 7 2 3 character CA
#> 8 2 4 character 319-Z19-4341
#> 9 3 1 character Evan
#> 10 3 2 character Nolan
#> 11 3 3 character IL
#> 12 3 4 character 219-532-c301
ws <- readr_example("whitespace-sample.txt")
writeLines(read_lines(ws))
#> first last state phone
#> John Smith WA 418-Y11-4111
#> Mary Hartford CA 319-Z19-4341
#> Evan Nolan IL 219-532-c301
melt_table2(ws)
#> Warning: `melt_table2()` was deprecated in readr 2.0.0.
#> ℹ Please use `meltr::melt_table2()` instead
#> # A tibble: 16 × 4
#> row col data_type value
#> <dbl> <dbl> <chr> <chr>
#> 1 1 1 character first
#> 2 1 2 character last
#> 3 1 3 character state
#> 4 1 4 character phone
#> 5 2 1 character John
#> 6 2 2 character Smith
#> 7 2 3 character WA
#> 8 2 4 character 418-Y11-4111
#> 9 3 1 character Mary
#> 10 3 2 character Hartford
#> 11 3 3 character CA
#> 12 3 4 character 319-Z19-4341
#> 13 4 1 character Evan
#> 14 4 2 character Nolan
#> 15 4 3 character IL
#> 16 4 4 character 219-532-c301
相关用法
- R readr melt_delim 返回分隔文件中每个标记的熔化数据(包括 csv 和 tsv)
- R readr melt_fwf 返回固定宽度文件中每个标记的熔化数据
- R readr datasource 创建源对象。
- 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 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 count_fields 计算文件每一行中的字段数
- R readr read_table 将空格分隔的列读入 tibble
- R readr problems 检索解析问题
- R readr parse_guess 使用“最佳”类型进行解析
- R readr parse_datetime 解析日期/时间
- R readr read_file 读/写完整文件
注:本文由纯净天空筛选整理自Hadley Wickham等大神的英文原创作品 Return melted data for each token in a whitespace-separated file。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。