一次读取所有文件 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
(根据需要重命名。)
我想读取.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
(根据需要重命名。)