有选择地读取文件名不以特定后缀结尾的 R 中的 csv 文件
Selectively reading in csv files in R where filenames don't end in a particular suffix
我有一个实验中的 csv 文件文件夹,我想将其读入 R 进行分析。该文件夹包含每个参与者的两个文件,文件名遵循以下模式:
"participantID.csv"
"participantID_debrief.csv"
我想在 R 中创建两个变量,一个用于标准数据文件,一个用于汇报文件。我找到了 list.files 函数并看到使用它的标准方法如下:
files <- list.files(path="D:/data", pattern=".csv")
但我想使用模式参数首先仅匹配 不 以“_debrief.csv”结尾的文件名,然后仅匹配 做。我将如何编写正则表达式(假设这就是模式)来实现这一点?
尝试:
files = list.files(path="D:/data")
non_debrief = files[!grepl("_debrief.csv", files)]
debrief = files[grepl("_debrief.csv", files)]
对于 tidyverse 方法,您可以使用 fs 库 (https://www.tidyverse.org/blog/2018/01/fs-1.0.0/)。
base_dir = 'D:/data/'
file_list_debrief = fs::dir_ls(base_dir, glob = '*_debrief.csv$')
file_list_non_debrief = fs::dir_ls(base_dir, glob = '*_debrief.csv$', invert = TRUE)
我有一个实验中的 csv 文件文件夹,我想将其读入 R 进行分析。该文件夹包含每个参与者的两个文件,文件名遵循以下模式:
"participantID.csv"
"participantID_debrief.csv"
我想在 R 中创建两个变量,一个用于标准数据文件,一个用于汇报文件。我找到了 list.files 函数并看到使用它的标准方法如下:
files <- list.files(path="D:/data", pattern=".csv")
但我想使用模式参数首先仅匹配 不 以“_debrief.csv”结尾的文件名,然后仅匹配 做。我将如何编写正则表达式(假设这就是模式)来实现这一点?
尝试:
files = list.files(path="D:/data")
non_debrief = files[!grepl("_debrief.csv", files)]
debrief = files[grepl("_debrief.csv", files)]
对于 tidyverse 方法,您可以使用 fs 库 (https://www.tidyverse.org/blog/2018/01/fs-1.0.0/)。
base_dir = 'D:/data/'
file_list_debrief = fs::dir_ls(base_dir, glob = '*_debrief.csv$')
file_list_non_debrief = fs::dir_ls(base_dir, glob = '*_debrief.csv$', invert = TRUE)