Read.Table 与 Readr 包中的 Read_Table - Readr 添加的额外列
Posted
技术标签:
【中文标题】Read.Table 与 Readr 包中的 Read_Table - Readr 添加的额外列【英文标题】:Read.Table vs. Read_Table in Readr Package - Extra Columns Added with Readr 【发布时间】:2017-12-20 06:24:41 【问题描述】:我正在尝试使用 readr
包读取 zip 文件。我的原始 csv 文件有 170 列。
当使用常规 read.table
函数将 zip 文件读入 R 时,不会添加额外的列:
data1 <- read.table(unz(zip_file,csv_file), skip = 10, header=T, quote="\"", sep=",")
当我尝试使用read_table
重现此内容时,如下所示:
data2 <- read_table(unz(zip_file,csv_file), skip = 10)
还有更多额外的列。
当我使用 read.table
和 1461 和 read_table
时,有 170 列。
下面是 excel 中的一些列的列表(以便您了解原始的样子),我想知道如何使用 read_table
函数读取所有内容而无需添加额外的列:
Column Names:
A
B
C
D (A)
D (B)
E F
G
A B C : 2017 D E - F G: H I
J.org - B : L -- K.org: F C
2016 TEST TESTING : Baltimore TEST TESt: H B
我认为有一堆空格、破折号、冒号等导致 read_table 添加了额外的列。
如何避免有多余的列,但同时保持原始格式的列?
谢谢!
【问题讨论】:
你试过readr::read_table2
吗?因为?readr::read_table
说read_table
更严格,而read_table2
就像read.table
。
如果它是一个csv文件,为什么不使用readr::read_csv
呢?
我正在读取一个 zip 文件,所以为了解压缩 zip 文件和 csv,我读到 read.table 是一个更好的选择
read_table2 不幸的是还有很多额外的列
@dshkol 我完全收回了这一点。即使解压缩文件,read_csv 也能完美运行。谢谢!介意把它记下来作为答案吗?
【参考方案1】:
如果您使用readr::read_csv
,它应该可以在不添加其他列的情况下工作,因为它可以正确地从您的 CSV 文件中选择适当的分隔符。
data2 <- read_csv(unz(zip_file,csv_file), skip = 10)
【讨论】:
以上是关于Read.Table 与 Readr 包中的 Read_Table - Readr 添加的额外列的主要内容,如果未能解决你的问题,请参考以下文章
readr::read_lines:空 *txt 文件的行长度结果问题