正在读取 "next line delimited" 的文本文件

Reading text file that is "next line delimited"

我不确定如何正确表达这个问题,所以我举个例子。
假设我有一个 .txt 文件,其中第一行是日期,第二行是文本。然后模式重复,第 3 行是 DATE,第 4 行是 TEXT。 我如何将其读入 R 并将其转换为两列 dataframe.
基本上我认为它是 "next line delimited",不确定这是否是描述它的正确方法。

这是将保存在 .txt 文件中的样本数据:

.LOG
3:42 PM 12/04/2019
Task 1
3:45 PM 12/04/2019
Task 2
3:55 PM 13/04/2019
Task 3
3:47 PM 15/04/2019

我希望它看起来像:

DATE                TEXT
3:42 PM 12/04/2019  Task 1
3:45 PM 12/04/2019  Task 2
3:55 PM 13/04/2019  Task 3

使用 read.tablesep = "\n" 读取文件,因此您将拥有单列数据框

df <- read.table(text = "3:42 PM 12/04/2019
                 Task 1
                 3:45 PM 12/04/2019
                 Task 2
                 3:55 PM 13/04/2019
                 Task 3", sep = "\n")

从文件中读取它

df <- read.table("path_of_the_file.txt", sep = "\n")

现在通过选择交替行将其分成两列

data.frame(Date = df[c(TRUE, FALSE), ], Text = df[c(FALSE, TRUE), ])

#               Date    Text
#1 3:42 PM 12/04/2019 Task 1
#2 3:45 PM 12/04/2019 Task 2
#3 3:55 PM 13/04/2019 Task 3

你可以这样做:

 MessyData <- read.table("Myfile.txt")
 CleanData <- data.frame(DATE = MessyData[seq(1, length(MessyData), by = 2)],
                         TEXT = MessyData[seq(2, length(MessyData), by = 2)])

这里有更好的选择 matrix 方法

as.data.frame(matrix(trimws(df$V1), ncol = 2, byrow = TRUE, 
          dimnames = list(NULL, c("DATE", "TEXT"))))
#               DATE   TEXT
#1 3:42 PM 12/04/2019 Task 1
#2 3:45 PM 12/04/2019 Task 2
#3 3:55 PM 13/04/2019 Task 3

读取数据集后

数据

df <- read.table("file.txt", sep = "\n")