我想在R文件中一起导入和绑定名为" number.CSV"的特定csv文件。 (例如3437.CSV)我在一个文件夹中包含了我不想导入的其他csv文件。
如何只选择我感兴趣的?
我有一个我需要的所有csv文件的列表,在下面的列中有一些。
CODE
49002
47001
64002
84008
46003
45001
55008
79005
84014
84009
45003
45005
51001
55012
67005
19004
7003
55023
55003
76004
21013
我有364个csv文件可供阅读和绑定。
n.b。我无法选择所有" ***。csv"来自我文件夹的文件,因为我有其他我不需要的文件。
由于
答案 0 :(得分:1)
您可以遍历感兴趣的CSV文件列表,读取每个文件,然后将其绑定到公共数据框:
path <- "path/to/folder/"
ROOT <- c("49002", "47001", "21013")
files <- paste0(path, ROOT)
sapply(files, bindFile, var2=all_files_df)
bindFile <- function(x, all_df) {
df <- read.csv(x)
all_df <- rbind(df, all_df)
}
答案 1 :(得分:0)
我不知道你是否可以从.CSV文件那样做。您可以做的是打开所有数据,然后使用命令cbind
。
例如:
data1 <- read.table("~/YOUR/DATA", quote="\"", comment.char="")
data2 <- read.table("~/YOUR/DATA", quote="\"", comment.char="")
data3 <- read.table("~/YOUR/DATA", quote="\"", comment.char="")
然后:
df&lt; - cbind(data1 $ Col1,data2 $ col3 ...)
其中col
是您想要的列的名称。
答案 2 :(得分:0)
只需使用数字代码创建文件名:
filenames = paste(code, 'csv', sep = '.')
# [1] "49002.csv" "47001.csv" "64002.csv" …
您可能还需要指定文件的完整路径:
directory = '/example/path'
filenames = file.path(directory, filenames)
# [1] "/example/path/49002.csv" "/example/path/47001.csv" "/example/path/64002.csv" …
现在你可以一次性将它们读入R:
data = lapply(filenames, read.csv)
或者,如果您的CSV文件没有列标题(特别是当文件的行具有不同数量的项目时就是这种情况!)
data = lapply(filenames, read.csv, header = FALSE)
这将为您提供list
data.frame
个。如果要将它们全部绑定到一个表中,请使用
data = do.call(rbind, data)