我在导入CSV时看到了类似的帖子,但没有导入文件类型根据列表具有相似名称的导入。我想编写一个遍历名称列表的循环,并导入每个CSV。
我在网站上有一个500 CSV的列表,我想将其导入R.每个文件都有一个类似的URL。例如,网址中的5个可能如下所示:
https://www.website.com/datasets/Dog/1234.csv
https://www.website.com/datasets/Cat/1234.csv
https://www.website.com/datasets/Turtle/1234.csv
https://www.website.com/datasets/Bird/1234.csv
https://www.website.com/datasets/Cow/1234.csv
实际的CSV数据如下所示:
Date,Open,High,Low,2018-01-25,174.505,174.95,170.53
前四项是列名。
更改网址的唯一部分是动物的名称。我在单独的XLS文件中列出了500只动物。
我知道如何将单个CSV文件导入单个数据帧:
Dog<-read.csv('https://www.website.com/datasets/Dog/1234.csv')
但是如何根据单独的XLS文件中的动物列表将所有这些一次导入一个CSV文件?我以为我可以将动物列表保存为一个单独的变量,然后遍历列表,但我被卡在那里:
List <- as.character( read.csv (https://www.website.com/datasets/AnimalList/1234.csv', stringsAsFactors = FALSE, header = FALSE))
对于5只动物,最终的数据框应该看起来像这样,列名为Date,Open,High,Low和Animal。
Date Open High Low Animal
018-01-17 156 111 196 Dog
018-01-18 133 153 112 Dog
018-01-19 194 182 117 Dog
018-01-20 199 158 109 Dog
018-01-21 137 151 145 Dog
018-01-22 164 192 141 Dog
018-01-23 152 113 128 Dog
018-01-24 125 114 175 Dog
018-01-25 152 132 112 Dog
018-01-26 149 125 139 Dog
018-01-17 118 128 134 Cat
018-01-18 168 136 107 Cat
018-01-19 187 150 185 Cat
018-01-20 122 178 190 Cat
018-01-21 112 186 169 Cat
018-01-22 120 192 189 Cat
018-01-23 134 149 106 Cat
018-01-24 195 172 172 Cat
018-01-25 192 162 113 Cat
018-01-26 198 170 118 Cat
018-01-17 160 188 129 Turtle
018-01-18 100 111 129 Turtle
018-01-19 165 101 145 Turtle
018-01-20 200 130 174 Turtle
018-01-21 130 113 130 Turtle
018-01-22 189 101 169 Turtle
018-01-23 185 146 104 Turtle
018-01-24 126 177 102 Turtle
018-01-25 143 102 167 Turtle
018-01-26 107 168 151 Turtle
018-01-17 193 121 169 Bird
018-01-18 148 134 164 Bird
018-01-19 199 192 106 Bird
018-01-20 138 160 124 Bird
018-01-21 105 140 161 Bird
018-01-22 182 170 185 Bird
018-01-23 119 171 172 Bird
018-01-24 154 115 130 Bird
018-01-25 104 105 158 Bird
018-01-26 100 153 169 Bird
018-01-17 191 192 187 Cow
018-01-18 187 128 107 Cow
018-01-19 198 135 114 Cow
018-01-20 170 110 185 Cow
018-01-21 141 119 112 Cow
018-01-22 173 159 173 Cow
018-01-23 139 186 155 Cow
018-01-24 169 178 172 Cow
018-01-25 101 149 155 Cow
018-01-26 157 178 161 Cow
答案 0 :(得分:1)
您可以使用purrr
使用map_df
循环遍历每个文件名,library(tidyverse)
#all animal names
animal.names <- c("Dog", "Cat", "Turtle", "Bird", "Cow")
获取每次迭代的结果,并将行绑定到数据框中。
scrape_csv <- function(animal.names){
#create urls
animal.urls <- paste0("https://www.website.com/datasets/",animal.names,"/1234.csv")
#read in file
df <- read_csv( as.character(animal.urls) )
#add animal name as col
df$Animal <- animal.names
return(df)
}
df_results <- animal.names %>% map_df( scrape_csv )
<div class="container-fluid">
<div class="row">
<div class="btn-group dropright">
<button type="button" class="btn btn-secondary dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Dropright
</button>
<div class="dropdown-menu">
<!-- Dropdown menu links -->
<div class="form-check form-check-inline">
<input class="form-check-input" type="checkbox" id="inlineCheckbox1" value="option1">
<label class="form-checka-label" for="inlineCheckbox1">1</label>
</div>
<div class="form-check form-check-inline">
<input class="form-check-input" type="checkbox" id="inlineCheckbox2" value="option2">
<label class="form-check-label" for="inlineCheckbox2">2</label>
</div>
<div class="form-check form-check-inline">
<input class="form-check-input" type="checkbox" id="inlineCheckbox3" value="option3" disabled>
<label class="form-check-label" for="inlineCheckbox3">3 (disabled)</label>
</div>
</div>
</div>
</div>
<div class="row">
<div class="container"></div>
</div>
</div>