【问题标题】:How to read a txt file line by line in R/Rstudio?如何在 R/Rstudio 中逐行读取 txt 文件?
【发布时间】:2013-10-02 01:51:41
【问题描述】:

假设我有一个像下面这样凌乱的文本文件

Today is a good
day, but I feel very tired. It seems like it is
going to rain pretty soon.

我想将 txt 文件作为字符向量读入 R,就像它在原始文本文件中的显示方式一样。换句话说,我希望字符向量的第一个元素是第一行,字符向量的第二个元素是第二行,依此类推,如下所示

char_vector[1] = "Today is a good"
char_vector[2] = "day, but I feel very tired. It seems like it is"
char_vector[3] = "going to rain pretty soon."

我尝试过 read.table 和 read.csv,但总是有一些行合并为一行。有没有办法解决这个问题?

【问题讨论】:

    标签: r text


    【解决方案1】:
    char_vector <- readLines(filename)
    
     txt <- "Today is a good
     day, but I feel very tired. It seems like it is
     going to rain pretty soon."
    
     readLines(textConnection(txt) )
    #   ---- teh screen output of three distinct character elements
    [1] "Today is a good"                                
    [2] "day, but I feel very tired. It seems like it is"
    [3] "going to rain pretty soon."                    
    
    char_vector <- readLines(textConnection(txt))
    
    char_vector[1]
    #[1] "Today is a good"
    

    【讨论】:

    • 这似乎给出了一个单一的字符向量,其中每个卡盘用逗号分隔。有没有办法将每个卡盘分配给字符向量的一个元素?顺便谢谢你。
    • 我不确定你看到了什么。如果您使用 textConnection,我将向您展示出现的内容。文件的行为与文本连接相同。
    • @SmithBlack 如果这解决了您的问题,请单击它旁边的复选标记,以便将其记录为答案。你会得到一些分数,它有助于跟踪哪些问题仍然需要答案。
    • 抱歉,stackoverflow 还是新手
    • @SmithBlack 不需要道歉。我们知道你是新人。只是让您快速了解惯例。
    【解决方案2】:

    你可以使用readLines函数。

    【讨论】:

      【解决方案3】:

      扫描可以做到这一点。

      scan( file="myfile.txt", what=character() ) 
      

      【讨论】:

      • 感谢您的帮助。似乎这需要知道文本中有多少行。如果我的文件很大,不知道txt文件有多少行怎么办?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-05
      • 1970-01-01
      • 1970-01-01
      • 2019-08-02
      相关资源
      最近更新 更多