【问题标题】:How to read comma-delimited fields with pipes as text delimiters in R如何在 R 中使用管道作为文本分隔符读取逗号分隔的字段
【发布时间】:2021-07-01 06:07:24
【问题描述】:

所以我有一个使用逗号分隔字段的 .txt 文件,但它也使用竖线(“|”)作为文本分隔符。我想使用 R 读取这个 .txt 文件(尽管如果 R 不可能,我可以使用其他程序),并且我希望所有值都在正确的列中。

数据样本:

15,|0370A01D-DC1E-4534-8176-A08A1E2F82E4|,|EDU|,|Education|,|Appropriations and authorization regarding higher education issues.|,|2008|
16,|03A8F7BB-9716-4494-BF41-013C27B5ECA6|,|GOV|,|Government Issues|,|issues affecting local government including appropriations|,|2003|
17,|04696109-082B-4EF6-9AA8-A6DB1013D15D|,|TEC|,|Telecommunications|,|RUS Broadband Applikcation|,|2008|
18,|04FA0BA7-E9D2-4F1E-8193-45F023065C89|,|DOC|,|District of Columbia|,|HUD Appropriations FY2009, CDBG
Financial Services Appropriations FY2009, District of Columbia
Commerce, Justice, Science Appropriations, Juvenile Justice, Byrne Grant|,|2008|
19,|04FA0BA7-E9D2-4F1E-8193-45F023065C89|,|HOU|,|Housing|,|HUD Appropriations FY2009, CDBG
Financial Services Appropriations FY2009, District of Columbia
Commerce, Justice, Science Appropriations, Juvenile Justice, Byrne Grant|,|2008|

所以每一行包含一个行号 (15, 16, ..., 19)、一个 |uniqueID|、一个 |IssueID|三个字母,一个较长的 |Issue|,一个 |SpecificIssue| 和一个 |Year|。

我最接近阅读此文件的是使用以下代码(我知道我将管道标识为其中的分隔符,这是不正确的,但这是迄今为止最好的结果):

lob_issues2 <- fread("file.txt", sep = "|", fill = TRUE)

这会产生以下table

如您所见,第 18 行和第 19 行中的 SpecificIssue 列正在引起问题。也许这些值太长或某事,这使得 R 将这些值的一部分分配到新列中。我希望 R 将这些值保留在 SpecificIssue 列中。关于使用什么代码来实现这一点有什么建议吗?

提前致谢。另外,如果您认为其他程序对此更好,请告诉我。

【问题讨论】:

    标签: r import comma txt


    【解决方案1】:

    使用quote= 参数让它知道|被用作引号字符:

    lob_issues2  <- read.table("file.txt", quote = "|", sep = ",")
    

    【讨论】:

    • 非常感谢您编辑问题然后回答它...这有很大帮助。祝您有美好的一天!
    猜你喜欢
    • 1970-01-01
    • 2016-04-22
    • 1970-01-01
    • 2012-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-05
    • 2019-12-22
    相关资源
    最近更新 更多