如何在 R 中导入乱七八糟的文本文件
How can I importsmessy text files in R
有没有人对如何导入如下所示的文本文件有一些建议:
"X1"II"X2"II"X3"II"X4"II"X5"""1"II4II"123-23"II01-03-2006II"209"II"1"II5II"124- 23"II02-03-2006II"208"II....(等)?
进入 R 并将其转换为数据帧?所以我想实现这样的目标:
| X1 | X2 |X3 | X4 | X5 |
| -- | -- | ------ | ---------- | --- |
| 1 | 4 | 123-23 | 01-03-2006 | 209 |
| 1 | 5 | 124-23| 02-03-2006 | 208 |
.....
我设法使用 read.file 将其作为长字符串导入,但之后卡住了。
我很感激任何帮助。
我把你的文字复制到一个文本文件中,
"X1"II"X2"II"X3"II"X4"II"X5"""1"II4II"123-23"II01-03-2006II"209"II"1"II5II"124-23"II02-03-2006II"208"
检查看来
- header 行是
X1 X2 X3 X4 X5
- 列由
II
分隔。
- 换行符是那个矩形,在使用
readr::read_file
读取后变成 \v
基于此,您正在寻找具有 5 列的 data.frame
。注意:一些行结尾出现在 II
之后(比如“209”II),这很奇怪,因为它暗示了行的结尾(我不得不在下面的代码中添加一个修复)。
由于 read.table
等函数要求 sep
变量为 1 个字节,因此您不能使用 read.table(file = 'text.txt', sep = 'II')
等函数。所以目前的工作解决方案是
library(magrittr)
library(stringr)
library(readr)
text <- readr::read_file(file = 'C:/Users/lcroote/my_data/read_test.txt')
text %>%
str_replace_all('\"', '') %>% # remove escaped quotes (readr thing)
str_replace_all('II', ',') %>% # columns separated by II
str_replace_all(',\v', '\n') %>% # some line endings have extra ,
str_replace_all('\v', '\n') %>% # replace \v by newline \n for read.table
read.table(text = ., sep = ',', header = T, fill = T, row.names = NULL)
>
X1 X2 X3 X4 X5
1 1 4 123-23 01-03-2006 209
2 1 5 124-23 02-03-2006 208
有没有人对如何导入如下所示的文本文件有一些建议:
"X1"II"X2"II"X3"II"X4"II"X5"""1"II4II"123-23"II01-03-2006II"209"II"1"II5II"124- 23"II02-03-2006II"208"II....(等)?
进入 R 并将其转换为数据帧?所以我想实现这样的目标:
| X1 | X2 |X3 | X4 | X5 |
| -- | -- | ------ | ---------- | --- |
| 1 | 4 | 123-23 | 01-03-2006 | 209 |
| 1 | 5 | 124-23| 02-03-2006 | 208 |
.....
我设法使用 read.file 将其作为长字符串导入,但之后卡住了。 我很感激任何帮助。
我把你的文字复制到一个文本文件中,
"X1"II"X2"II"X3"II"X4"II"X5"""1"II4II"123-23"II01-03-2006II"209"II"1"II5II"124-23"II02-03-2006II"208"
检查看来
- header 行是
X1 X2 X3 X4 X5
- 列由
II
分隔。 - 换行符是那个矩形,在使用
readr::read_file
读取后变成\v
基于此,您正在寻找具有 5 列的 data.frame
。注意:一些行结尾出现在 II
之后(比如“209”II),这很奇怪,因为它暗示了行的结尾(我不得不在下面的代码中添加一个修复)。
由于 read.table
等函数要求 sep
变量为 1 个字节,因此您不能使用 read.table(file = 'text.txt', sep = 'II')
等函数。所以目前的工作解决方案是
library(magrittr)
library(stringr)
library(readr)
text <- readr::read_file(file = 'C:/Users/lcroote/my_data/read_test.txt')
text %>%
str_replace_all('\"', '') %>% # remove escaped quotes (readr thing)
str_replace_all('II', ',') %>% # columns separated by II
str_replace_all(',\v', '\n') %>% # some line endings have extra ,
str_replace_all('\v', '\n') %>% # replace \v by newline \n for read.table
read.table(text = ., sep = ',', header = T, fill = T, row.names = NULL)
>
X1 X2 X3 X4 X5
1 1 4 123-23 01-03-2006 209
2 1 5 124-23 02-03-2006 208