一次读取所有文件 data.frame (rlang)

read all file in one data.frame (rlang)

我想读取.txt格式文件夹中所有相同格式的文件,得到1个data.frame。我知道如何为 .CSV(下面的示例)执行此操作,但不能为 .TXT 执行此操作。感谢所有告诉我的人)

temp <- list.files(pattern="*.csv")
Inst_test_Jule <- lapply(temp, read_csv) %>%
  rbind.fill(Inst_test)

对于我使用的 txt 格式的只读文件

Ffact <- read.table("T:/test/work 0217.asc")

我有

V1
<dbl>
V2
<dbl>
V3
<dbl>
V4
<dbl>
87406   2041    6779    20743   
87407   2014    6778    21553   
87408   2041    6780    20743   
87409   2041    6781    20743   
87410   2041    6782    20743   
87411   2014    6778    21553   

我也在云中加载我的文件...在下面的评论中

看看最近的post:Import several files from different directory (but similar structure in every case)

同样,

## NOT RUN, because I don't have a directory of delimited .txt files handy.
library(tidyverse)
myConcat <- 
  list.files("some/directory", recursive = FALSE, pattern = 
            "(?i)*.txt", full.names=TRUE) %>% 
  map_df( ~ read.delim(.x, header = TRUE, sep = "\t"))

您还没有说明您的 .txt 文件是如何分隔的。我假设他们是 tab-delimited 并且有 headers。模式中的 (?i) 是为了防止某些文件后缀为 .TXT、.Txt 等

这里有两个问题:(1) 如何一次读取 that 文件; (2) 如何读取很多看起来像那样的文件。

files <- list.files("~/Whosebug/13426927", pattern = "asc$", full.names = TRUE)
files
# [1] "C:\Users\r2/Whosebug/13426927/61704300.R.asc"  
# [2] "C:\Users\r2/Whosebug/13426927/61704300_2.R.asc"

read.table(files[1], header = FALSE, skip = 8)
#      V1   V2   V3    V4
# 1 87406 2041 6779 20743
# 2 87407 2014 6778 21553
# 3 87408 2041 6780 20743
# 4 87409 2041 6781 20743
# 5 87410 2041 6782 20743
# 6 87411 2014 6778 21553

现在我们知道如何一次阅读一个,现在一次阅读:

alldat <- lapply(files, read.table, header = FALSE, skip = 8)
out <- do.call(rbind.data.frame, alldat)
out
#       V1   V2   V3    V4
# 1  87406 2041 6779 20743
# 2  87407 2014 6778 21553
# 3  87408 2041 6780 20743
# 4  87409 2041 6781 20743
# 5  87410 2041 6782 20743
# 6  87411 2014 6778 21553
# 7  87406 2041 6779 20743
# 8  87407 2014 6778 21553
# 9  87408 2041 6780 20743
# 10 87409 2041 6781 20743
# 11 87410 2041 6782 20743
# 12 87411 2014 6778 21553

(根据需要重命名。)