2017-07-19 38 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 
相关问题