将文件作为一个字符串读入R中

12 浏览
0 Comments

将文件作为一个字符串读入R中

在R中如何将纯文本文件导入为单个字符字符串?我认为这可能有一个非常简单的答案,但是当我今天尝试时,发现找不到一个能够做到这一点的函数。\n例如,假设我有一个名为foo.txt的文件,其中包含我想要进行文本挖掘的内容。\n我尝试了以下方法:\n

scan("foo.txt", what="character", sep=NULL)

\n但是这仍然返回一个向量。我尝试了以下方法:\n

paste(scan("foo.txt", what="character", sep=" "),collapse=" ")

\n但这是一个相当丑陋的解决方案,可能也不够稳定。

0
0 Comments

问题:如何将文件作为单个字符串读入R中?

原因:使用readLines函数读取文件时,默认情况下,如果文件的最后一行没有包含换行符,那么这一行将不会被包含在字符串中。这可能导致文件内容的丢失或截断。

解决方法:可以使用paste函数将readLines函数的输出进行连接,并使用collapse参数指定连接字符串时使用的分隔符。例如,可以使用以下代码将文件读入R中作为单个字符串:

singleString <- paste(readLines("foo.txt"), collapse=" ")

这种方法可以正常处理被压缩或未压缩的文件,并保持文件中原始行的分隔符。

然而,需要注意的是,如果文件的最后一行不包含换行符,则该行不会被包含在字符串中,或者文件会在最后一行断开处截断。这可能会导致文件内容的不完整。

对于以文本模式打开的连接,默认情况下,readLines函数会返回完整的文件内容,并生成有关缺少换行符的警告。但是,如果以非阻塞文本模式打开连接,则不完整的行将被静默地推回,不会生成警告。

因此,在使用readLines函数时,需要注意连接类型和文件内容的完整性。

0
0 Comments

问题的原因是使用了已经被迁移的函数"read_file",而原先的函数已经不再包含在stringr包中。解决方法是安装readr包,并使用其read_file()函数来实现将文件读取为单个字符串的操作。read_file()函数可以通过指定文件路径来读取文件,并将文件内容作为单个字符串存储在变量中。此外,readr包还具有解压缩.gz文件的功能。

0
0 Comments

问题的原因是使用了错误的大小来读取文件。解决方法是使用正确的文件大小来读取文件内容。代码如下:fileName <- 'foo.txt' readChar(fileName, file.info(fileName)$size)需要注意的是,readChar函数为指定的字节数分配内存空间,所以readChar(fileName, .Machine$integer.max)不能很好地工作。

需要指出的是,这段代码对于压缩文件是不起作用的。在这种情况下,由file.info(filename)$size返回的字节数将不会与我们期望在内存中读取的实际内容匹配,我们期望的内容会更大。

0