在 R 中读取和命名多个 .txt 文件
Reading and naming multiple .txt files in R
我想在 R 中读取和命名多个 .txt 文件。更清楚(示例):我有 2 个子文件夹,每个子文件夹包含三个 .txt 文件(它们具有相同的名称)。子文件夹 'test' 有 3 个名为 'alpha.txt'、'bita.txt'、'gamma.txt' 的 .txt 文件,子文件夹 'train' 有 3 个名为 'alpha.txt' 的 .txt 文件, 'bita.txt'、'gamma.txt'。我正在使用以下代码:
files <- dir(recursive=TRUE,pattern ='\.txt$')
List <- lapply(files,read.table,fill=TRUE)
它给出了一个包含 6 个元素的列表,每个元素一个数据框。我知道第一个元素是测试文件夹中的 'alpha',第二个元素是测试文件夹中的 'bita',依此类推。但由于文件较多,我想读取数据以便在环境变量中具有:'test_alpha'、'test_bita'、'test_gamma'、'train_alpha'、'train_bita','train_gamma'。有办法吗?
我在工作目录 /train
和 /test
中创建了两个文件夹。我们创建两个数组并将它们分别写入每个文件夹。
df1 <- data.frame(matrix(rnorm(9), 3, 3))
df2 <- data.frame(matrix(runif(12), 4,3))
write(df1, './test/alpha.txt')
write(df2, './train/alpha.txt')
我们运行你的代码:
files <- dir(recursive=TRUE,pattern ='\.txt$')
List <- lapply(files,read.table,fill=TRUE)
files
[1] "test/alpha.txt" "train/alpha.txt"
它可以隔离我们需要的文件。接下来我们去掉正斜杠和文件扩展名。
newnames <- gsub('/', '_', files)
newnames1 <- gsub('\.txt', '', newnames)
newnames1
[1] "test_alpha" "train_alpha"
现在可以将此向量分配给 List
以命名每个数组。
names(List) <- newnames1
List
$test_alpha
V1 V2 V3 V4 V5
1 -0.6594299 -0.01881557 0.7076588 -0.7096888 0.3629274
2 -1.4401000 1.59659000 -1.9041430 2.3079960 NA
$train_alpha
V1 V2 V3 V4 V5
1 0.9307107 0.6257928 0.6903179 0.5143920 0.6798936
2 0.3652738 0.9297527 0.1902556 0.7243708 0.4541548
3 0.5565041 0.5276907 NA NA NA
我想在 R 中读取和命名多个 .txt 文件。更清楚(示例):我有 2 个子文件夹,每个子文件夹包含三个 .txt 文件(它们具有相同的名称)。子文件夹 'test' 有 3 个名为 'alpha.txt'、'bita.txt'、'gamma.txt' 的 .txt 文件,子文件夹 'train' 有 3 个名为 'alpha.txt' 的 .txt 文件, 'bita.txt'、'gamma.txt'。我正在使用以下代码:
files <- dir(recursive=TRUE,pattern ='\.txt$')
List <- lapply(files,read.table,fill=TRUE)
它给出了一个包含 6 个元素的列表,每个元素一个数据框。我知道第一个元素是测试文件夹中的 'alpha',第二个元素是测试文件夹中的 'bita',依此类推。但由于文件较多,我想读取数据以便在环境变量中具有:'test_alpha'、'test_bita'、'test_gamma'、'train_alpha'、'train_bita','train_gamma'。有办法吗?
我在工作目录 /train
和 /test
中创建了两个文件夹。我们创建两个数组并将它们分别写入每个文件夹。
df1 <- data.frame(matrix(rnorm(9), 3, 3))
df2 <- data.frame(matrix(runif(12), 4,3))
write(df1, './test/alpha.txt')
write(df2, './train/alpha.txt')
我们运行你的代码:
files <- dir(recursive=TRUE,pattern ='\.txt$')
List <- lapply(files,read.table,fill=TRUE)
files
[1] "test/alpha.txt" "train/alpha.txt"
它可以隔离我们需要的文件。接下来我们去掉正斜杠和文件扩展名。
newnames <- gsub('/', '_', files)
newnames1 <- gsub('\.txt', '', newnames)
newnames1
[1] "test_alpha" "train_alpha"
现在可以将此向量分配给 List
以命名每个数组。
names(List) <- newnames1
List
$test_alpha
V1 V2 V3 V4 V5
1 -0.6594299 -0.01881557 0.7076588 -0.7096888 0.3629274
2 -1.4401000 1.59659000 -1.9041430 2.3079960 NA
$train_alpha
V1 V2 V3 V4 V5
1 0.9307107 0.6257928 0.6903179 0.5143920 0.6798936
2 0.3652738 0.9297527 0.1902556 0.7243708 0.4541548
3 0.5565041 0.5276907 NA NA NA