Skip to main content
 首页 » 编程设计

R 中的 Python 列表理解

2025年05月04日10lori

我想在 R 中这样做:

fsC=[read.table(x) for x in Sys.glob('./Trial7/*.csv')] 

即尝试将每个文件的内容读入一个单独的向量,其中向量属于一个数据结构。

python

[file(x, 'r').read() for x in glob.glob('./Trial7/*.csv')] 

或者实际上更好

[file(x, 'r') for x in glob.glob('./Trial7/*.csv')] 

但我认为你明白了...

请您参考如下方法:

你有两个问题。首先,“给定一个文件名向量,你如何将这些文件读入 R?”。

这是你的文件名列表

trial7_files <- Sys.glob("Trial7/*.csv")  
#if you prefer to specify the names using regular expressions, try  
trial7_files <- dir("Trial7", "\\.csv$") 

如前所述,lapply 是读取文件的最佳方式。

fsC <- lapply(trial7_files, read.csv) 

这会为您提供数据框列表,并引出您的下一个问题。 “如何将具有相同列的数据框列表组合成一个数据框?”

执行此操作的标准方法是使用 do.call 和 rbind。首先,记下每个数据集中有多少行是很有用的。

n_records <- sapply(fsC, nrow) 
fsC <- do.call(rbind, fsC) 

虽然您可能需要一个列来告诉您每一行来自哪个文件,但您的问题已经解决了。

fsC$source <- rep(trial7_files, n_records)