2017-07-19 43 views

回答

0

我做了一個可重複的例子。 跳轉到你想要什麼如果你想跳過可重複的例子。有些數據要寫入csv文件。 temp0有2列temp1有3列

編造數據和

library(tidyverse) 

temp0 <- mtcars %>% head(.,5) %>% select(mpg,cyl) 

        mpg cyl 
Mazda RX4   21.0 6 
Mazda RX4 Wag  21.0 6 
Datsun 710  22.8 4 
Hornet 4 Drive 21.4 6 
Hornet Sportabout 18.7 8 

temp1 <- mtcars %>% head(.,5) %>% select(cyl,gear,carb) 

        cyl gear carb 
Mazda RX4   6 4 4 
Mazda RX4 Wag  6 4 4 
Datsun 710   4 4 1 
Hornet 4 Drive  6 3 1 
Hornet Sportabout 8 3 2 

把它們寫出來的文件,我使數據的名稱的隨機向量

set.seed(1) 
num.files <- 20 
rand.num <- sample(c(0,1),num.files,replace=T) 
files <- paste0(rep("temp",20),rand.num) 

head(files) 
[1] "temp0" "temp0" "temp1" "temp1" "temp0" 

最後寫入csv文件

library(readr) 
for (i in 1:length(files)) { 
    write_csv(get(files[i]), paste0("C:/temp/temp", i, ".csv"), col_names=F) 
} 

-----你想要什麼-----

讀取文件並添加id,您可以使用map

temp <- map(1:20,~read_csv(paste0("C:/temp/temp", .x, ".csv"),col_names=F) %>% mutate(id=.x)) 

根據您的列名,以下可能幫助你用Reducefull_join(它適用於這個玩具的例子)以一種整潔的方式加入他們。

final <- Reduce(full_join, temp) 

輸出

head(final) 
     X1 X2 id X3 
1 21.0  6  1 NA 
2 21.0  6  1 NA 
3 22.8  4  1 NA 
4 21.4  6  1 NA 
5 18.7  8  1 NA 
相關問題