我的问题非常简单,我有一个文件,其中每行包含大量的推文,不包含引号。在阅读我创建的文件"数据集"后,将其随机化并消除重复:
dataset <- read.table(file, header=FALSE, sep="\n", stringsAsFactors=F)
unique_ds <- unique.data.frame(dataset)
random_ds <- unique_ds[sample(nrow(unique_ds)),]
write.table(data.frame(random_ds),file="tweets_final.txt", sep="\n", quote=F, col.names=F, row.names=F)
random_ds 有 2246 行。但是,当我打开刚刚创建的文件时,我看到超过5000行。
第一个问题:我无法理解 的问题。它可能在write.table或上面的代码吗?
[考虑到在原始文件的每条推文中,我已经删除了换行符和回车符;下面的Java代码]
out = out.replaceAll("[\n\r]", " ");
第二个问题:假设每行添加一个新变量(例如推文的类别),当我在R中读回它时,就像csv文件这种格式是合适的: &#34;我的推文&#34;,使用下面的代码输入?
ds <- read.csv(file = "tweet_classified.txt", header = FALSE, sep = ",",stringsAsFactors = FALSE, quote = "\"")
特别是如何在Java / R中管理引号内的引号问题?
感谢
重要我只考虑这样一个事实:很明显,Twitter数据包含#字符,所以我会问另一个问题:是否可以使用\ n进行sobitute主题标签?或者只是将其视为评论,然后抛弃#
之后的部分答案 0 :(得分:0)
好的,我用read.table
代替gsub("\"","'",readLines(con))
来解决问题。
当我写信给文件时,我将使用quote=T
这是我的代码:
file_list <- list.files()
for (file in file_list){
con <- file(file)
if (!exists("dataset")){
dataset <- data.frame(gsub("\"","'",readLines(con)),stringsAsFactors = F)
}
if (exists("dataset")){
temp_dataset <- data.frame(gsub("\"","'",readLines(con)),stringsAsFactors = F)
dataset<-rbind(dataset, temp_dataset)
rm(temp_dataset)
}
close.connection(con)
}
unique_ds <- unique.data.frame(dataset)
random_ds <- unique_ds[sample(nrow(unique_ds)),]
write.table(data.frame(random_ds, stringsAsFactors = F),file="unclassified.txt",col.names = F, row.names = F, quote = T)
然后在阅读阶段:
dataset <- read.csv(file="unclassified.txt", header=FALSE, stringsAsFactors = FALSE,quote="\"")