以R語言逐行讀取文字檔案

Jesse John 2023年9月19日
以R語言逐行讀取文字檔案

在R程式設計中,逐行讀取文字檔案是數據分析和操作任務中常見的操作。本文將介紹在R中逐行讀取文字檔案的常用方法。

使用readLines()函式逐行讀取文字檔案

當讀完所有行後,我們將使用readLines()函式。由於我們不知道行數,因此需要知道何時到達檔案末尾。

當沒有更多行時,readLines()函式將返回一個空字元向量character(0)

在這一點上,我們將使用break退出迴圈。請注意,迴圈不會在空白行上中斷,因為這些行具有行尾標記。

我們將在每次迴圈迭代中使用identical()函式來檢查該行是否與character(0)相同。

如果相同,我們將break;否則,我們處理該行。在本例中,我們將其列印出來。

根據說明文件,文字檔案的最後一行應該有一個行尾標記,以使readLines()函式能夠一致地工作。

首先,請使用以下文字構建一個樣本文字檔案,並以UTF-8編碼和適當的檔案名稱保存它(需要相應地在程式碼中替換檔案名稱)。

The first line.
The second line.
The third line.

Last line.

在示例程式碼中,我們將執行以下操作。

  • 創建連接並打開它。
  • 逐行遍歷檔案,打印每一行。
  • 當行為character(0)時退出迴圈。
  • 關閉連接。需要明確打開的連接需要明確關閉。

示例程式碼:

# Explicitly create and open a connection.
# REPLACE THE FILE NAME AS PER YOUR FILE.
myCon = file(description = "filename.txt", open="r", blocking = TRUE)

# The position in the connection advances to the next line on each iteration.
# Loop till the line is the empty vector, character(0).
repeat{
  pl = readLines(myCon, n = 1) # Read one line from the connection.
  if(identical(pl, character(0))){break} # If the line is empty, exit.
  print(pl) # Otherwise, print and repeat next iteration.
}

# Explicitly opened connection needs to be explicitly closed.
close(myCon)
rm(myCon) # Removes the connection object from memory.

輸出:

The first line.
The second line.
The third line.

Last line.

讓我們來看另一個示例。

示例程式碼:

# Specify the path to your text file
file_path <- "your_file.txt"

# Use the readLines function to read the file line by line
# It reads the entire content of the specified file and stores each line as an element in a character vector named lines
lines <- readLines(file_path)

# Loop through the lines and process them
for (line in lines) {
  # Process each line here (e.g., print it)
  cat(line, "\n")
}

執行此程式碼時,它將逐行讀取文字檔案並顯示每一行。

輸出:

The first line.
The second line.
The third line.

Last line.

請記得將"your_file.txt"替換為您打算使用的樣本文字檔案的實際檔案路徑。

作者: Jesse John
Jesse John avatar Jesse John avatar

Jesse is passionate about data analysis and visualization. He uses the R statistical programming language for all aspects of his work.

相關文章 - R File