r - 在 R 中导入 .txt 文件
问题描述
我想导入具有以下模式的 txt 文件:
"X1"\"ID_T35.x"\"Produktionsdatum.x"\"Herstellernummer.x"\"Werksnummer.x"\"Fehlerhaft.x"\"Fehlerhaft_Datum.x"\"Fehlerhaft_Fahrleistung.x"\"ID_T35.y"\"Produktionsdatum.y"\"Herstellernummer.y"\"Werksnummer.y"\"Fehlerhaft.y"\"Fehlerhaft_Datum.y"\"Fehlerhaft_Fahrleistung.y""1"\2\"35-217-2173-92"\2008-11-07\"217"\2173\0\NA\0\NA\NA\NA\NA\NA\NA\NA"2"\9\"35-217-2173-23"\2008-11-07\"217"\2173\0\NA\0\NA\NA\NA\NA\NA\NA\NA"3"\10\"35-217-2173-24"\2008-11-07\"217"\2173\0\NA\0\NA\NA\NA\NA\NA\NA\NA"4"\11\"35-217-2173-52"\2008-11-07\"217"\2173\0\NA\0\NA\NA\NA\NA\NA\NA\NA"5"\12\"35-217-2173-104"\2008-11-07\"217"\2173\0\NA\0\NA\NA\NA\NA\NA\NA\NA"6"\19\"35-217-2173-50"\2008-11-07\"217"\2173\0\NA\0\NA\NA\NA\NA\NA\NA\NA"7"\20\"35-217-2173-93"\2008-11-07\"217"\2173\0\NA\0\NA\NA\NA\NA\NA\NA\NA"8"\21\"35-217-2173-111"\2008-11-07\"217"\2173\0\NA\0\NA\NA\NA\NA\NA\NA\NA"9"\22\"35-217-2173-113"\2008-11-07\"217"\2173\0\NA\0\NA\NA\NA\NA\NA\NA\NA"10"\23\"35-217-2173-138"\2008-11-07\"217"\2173\0\NA\0\NA\NA\NA\NA\NA\NA\NA"11"\24\"35-217-2173-150"\2008-11-07\"217"\2173\0\NA\0\NA\NA\NA\NA\NA\NA\NA"12"\25\"35-217-2173-158"\2008-11-07\"217"\2173\0\NA\0\NA\NA\NA\NA\NA\NA\NA"13"\33\"35-217-2173-8"\2008-11-07\"217"\2173\0\NA\0\NA\NA\NA\NA\NA\NA\NA"14"\34\"35-217-2173-43"\2008-11-07\"217"\2173\0\NA\0\NA\NA\NA\NA\NA\NA\NA"15"\35\"35-217-2173-79"\2008-11-07\"217"\2173\1\2010-04-28\41562.3534246575\NA\NA\NA\NA\NA\NA\NA"16"\36\"35-217-2173-102"\2008-11-07\"217"\2173\0\NA\0\NA\NA\NA\NA\NA\NA\NA"17"\37\"35-217-2173-117"\2008-11-07\"217"\2173\0\NA\0\NA\NA\NA\NA\NA\NA\NA"18"\38\"35-217-2173-139"\2008-11-07\"217"\2173\1\2010-04-28\41562.3534246575\NA\NA\NA\NA\NA\NA\NA"19"\40\"35-217-2173-55"\2008-11-07\"217"\2173\0\NA\0\NA\NA\NA\NA\NA\NA\NA"20"\41\"35-217-2173-182"\2008-11-08\"217"\2173\1\2010-04-29\41648.7616438356\NA\NA\NA\NA\NA\NA\NA"21"\42\"35-217-2173-212"\2008-11-08\"217"\2173\0\NA\0\NA\NA\NA\NA\NA\NA\NA"22"\43\"35-217-2173-227"\2008-11-08\"217"\2173\1\2010-04-29\41648.7616438356\NA\NA\NA\NA\NA\NA\NA"23"\44\"35-217-2173-283"\2008-11-08\"217"\2173\0\NA\0\NA\NA\NA\NA\NA\NA\NA"24"\49\"35-217-2173-41"\2008-11-07\"217"\2173\0\NA\0\NA\NA\NA\NA\NA\NA\NA"25"
反斜杠表示一个新列,直到字符串“1”。那应该是一个新行。数据集应该有 818844 行。该数据集称为 Einzelteil_T35。我的方法是这样的:
library(readr)
library(data.table)
library(tidyverse)
Einzelteil_T35 <- read_file("Einzelteil_T35.txt") %>%
str_replace_all(. , "\"\"", ";") %>%
str_replace_all(. ,"____", "\n" ) %>% #"_____" means i haven't find a pattern to identify the new row
fread(text = .) %>%
as_tibble()
我一直在考虑一种计算反斜杠并在每次找到第 15 个反斜杠时创建一个新行的方法,因为第 15 个反斜杠是新行的开始,但我没有找到方法。也许你可以用这种方法或完全不同的方法帮助我。
非常感谢您提前
解决方案
如果您可以确定模式“1”只出现在标记新行,也许您可以试试这个?
编辑:我的意思是没有第一个管道。
library(readr)
library(data.table)
library(tidyverse)
Einzelteil_T35 <- read_file("Einzelteil_T35.txt") %>%
str_replace_all(. ,'\\"1\\"', "\n" ) %>%
fread(text = .) %>%
as_tibble()
如果不是,也许有一种方法可以使模式更加具体,例如,如果新行之前的“”总是以“.y”或其他东西开头。
推荐阅读
- c# - 当我得到 gsm 调制解调器时如何实现重试机制异常:没有从手机收到数据?
- python - Python 单元测试:psycopg2 查询覆盖率
- amazon-web-services - 使用 AWS DMS 进行 Postgres 到 Postgres 数据迁移时,如何修复“列“xlog_position”不存在”错误
- sql - 数据透视表的有效方法
- python - 使用 sqlalchemy 从 python 启动 SQL 存储过程?
- android - 在 WebView 中加载 HTML 时如何处理默认打开的选项卡?
- regex - Golang正则表达式提取括号内的值并忽略任何内部括号
- ruby-on-rails - 在 Ruby on Rails 中使用 Ransack 的 sort_link 格式 mm-yyyy
- angular - 在 Angular 中获取 HTTPClient 的值
- xml - ebay api FiexedPriceTransaction 通知并获取更新的商品数量