您好我正在尝试读取位于同一目录中的多个csv文件 . 我想选择工作目录,然后将所有文件读入一个大清单(如果可能的话) . 我的尝试如下 . 任何帮助将不胜感激 . 我不知道我做错了什么!
directory <- dlgDir() file_list <- list.files(path = "directory", pattern = "*.csv") bigList <- sapply(file_list, read.csv)
下面是使用来自kaggle.com的Alberto Barradas'Pokémon Stats数据的更新版本的示例,该数据从目录中读取文件列表并将它们组合到数据框中 .
download.file("https://raw.githubusercontent.com/lgreski/pokemonData/master/pokemonData.zip", "pokemonData.zip", method="curl",mode="wb") unzip("pokemonData.zip") thePokemonFiles <- list.files("./pokemonData", full.names=TRUE) thePokemonFiles pokemonData <- lapply(thePokemonFiles,function(x) read.csv(x))
此时,对象 pokemonData 是七个数据帧的列表,包含七代神奇宝贝中的一个,我们将使用 summary() 进行演示 .
pokemonData
summary()
> summary(pokemonData) Length Class Mode [1,] 13 data.frame list [2,] 13 data.frame list [3,] 13 data.frame list [4,] 13 data.frame list [5,] 13 data.frame list [6,] 13 data.frame list [7,] 13 data.frame list
要将它们组合成单个数据帧,我们将 do.call() 与 rbind() 函数一起使用 .
do.call()
rbind()
pokemonData <- do.call(rbind,pokemonData)
为了证明 pokemonData 对象现在由一个具有七代神奇宝贝的单个数据框组成,我们将再次执行 summary() .
> summary(pokemonData) Number Name Min. : 1.0 Abra : 1 1st Qu.:208.0 Aerodactyl : 1 Median :402.0 AerodactylMega Aerodactyl: 1 Mean :405.4 Alakazam : 1 3rd Qu.:609.0 AlakazamMega Alakazam : 1 Max. :807.0 Arbok : 1 (Other) :887 Type1 Type2 Total HP Water :122 :385 Min. :175.0 Min. : 1.00 Normal :110 Flying :108 1st Qu.:330.0 1st Qu.: 50.00 Grass : 82 Ground : 37 Median :455.0 Median : 66.00 Bug : 78 Poison : 35 Mean :437.6 Mean : 69.44 Psychic: 66 Psychic: 35 3rd Qu.:518.0 3rd Qu.: 80.00 Fire : 58 (Other):258 Max. :780.0 Max. :255.00 (Other):377 NA's : 35 Attack Defense SpecialAtk Min. : 5.00 Min. : 5.00 Min. : 10.0 1st Qu.: 55.00 1st Qu.: 50.00 1st Qu.: 50.0 Median : 75.00 Median : 70.00 Median : 65.0 Mean : 79.83 Mean : 74.39 Mean : 73.4 3rd Qu.:100.00 3rd Qu.: 90.00 3rd Qu.: 95.0 Max. :190.00 Max. :230.00 Max. :194.0 SpecialDef Speed Generation Min. : 20.00 Min. : 5.00 Min. :1.000 1st Qu.: 50.00 1st Qu.: 45.00 1st Qu.:2.000 Median : 70.00 Median : 65.00 Median :4.000 Mean : 72.37 Mean : 68.21 Mean :3.713 3rd Qu.: 90.00 3rd Qu.: 90.00 3rd Qu.:5.000 Max. :230.00 Max. :180.00 Max. :7.000 Legendary False:734 True : 65 NA's : 94
1 回答
下面是使用来自kaggle.com的Alberto Barradas'Pokémon Stats数据的更新版本的示例,该数据从目录中读取文件列表并将它们组合到数据框中 .
此时,对象
pokemonData
是七个数据帧的列表,包含七代神奇宝贝中的一个,我们将使用summary()
进行演示 .要将它们组合成单个数据帧,我们将
do.call()
与rbind()
函数一起使用 .为了证明
pokemonData
对象现在由一个具有七代神奇宝贝的单个数据框组成,我们将再次执行summary()
.