【发布时间】: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 列中。关于使用什么代码来实现这一点有什么建议吗?
提前致谢。另外,如果您认为其他程序对此更好,请告诉我。
【问题讨论】: