我不确定如何正确地表达这个问题,所以我举一个例子。
假设我有一个.txt
文件,其中第一行是DATE,第二行是TEXT。然后重复该模式,第3行是DATE,第4行是TEXT。
如何将其读入R
并将其转换为两列dataframe
。
本质上,我认为它是“下一行分隔的”,不确定这是否是描述它的正确方法。
以下是示例数据,该数据将保存在.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
答案 0 :(得分:4)
将read.table
与sep = "\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
答案 1 :(得分: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)])
答案 2 :(得分:3)
这是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")