首页 > 解决方案 > .txt 文件中的多个分隔符

问题描述

我正在将数据从 .txt 文件导入到R. .txt 数据的外观示例如下所示:

000003154|OAKLEAF FOREST TENANT MANAGEMENT ||1706 GREENLEAF DR|NORFOLK|VA|23523-2112|US|03|

000065837|OHIO STATE GRANGE OF PATRONS OF HUSBANDRY|64 HURON COUNTY POMONA|4655 STATE ROUTE 60|WAKEMAN|OH|44889-8602|US|05|

000107893|INTERNATIONAL ASSOCIATION OF LIONS|CLUBSSTURBRIDGE LION|204 OLD SPRINGFIELD RD|STAFFORD SPGS|CT|06076-3016|US|

000262358|KEY CLUB INTERNATIONAL||H90622 HANFORD WEST HIGH SCHOOL|1150 W LACEY BLVD|HANFORD|CA|93230-3575|US|04|

000267075|INTERNATIONAL ASSOCIATION OF LIONS|CLUBSBRUNSWICK G|3324 KELWIN AVE|BRUNSWICK|GA|31520-3741|US|04|

这里要注意的关键是,该文件中的相关分隔符大部分时间是|. 但有时它会出现两次||。这意味着当我使用类似的代码导入数据时,当其中一个观察值具有双分隔符时read.delim("data.txt", header=F,sep="|"),会创建一个额外的列。R你有什么建议来解决这个问题吗?

标签: rimporttxt

解决方案


您可以使用readr软件包阅读它:

library(readr)
library(dplyr)
library(stringr)

text_file <- read_file("~/Desktop/tekst.txt")

text_file2 <- gsub("\\|\\|", "\\|", text_file)
text_df <- unlist(strsplit(text_file2, split = "\\\n"))

data.frame(col = text_df) %>%
  filter(col != "") %>%
  mutate(col = str_split_fixed(col, "\\|", 10))

推荐阅读