2017-12-01 3 views
1

많은 행과 열이있는 데이터 프레임이 있습니다. 한 열은 더 많은 데이터가 들어있는 파일의 경로를 지정합니다 : 나는, 그 파일을 읽고 다음 (해당 파일에서 만든 dataframe 내 행을 확장하려는다른 데이터 프레임을 통해 데이터 프레임의 행을 확장하십시오.

 name    path 
1   a  /path/a.csv 
2   b  /path/b.csv 

을 즉 readr::read_csv :

a.csv

을 파일
 t  x 
1  1  3 
2  2  1 
3  3  6 

b.csv :

 t  x 
1  1  4 
2  2  3 
3  3  5 
4  4  1 

원하는 출력

name  t  x 
1  a  1  3 
2  a  2  1 
3  a  3  6 
4  b  1  4 
5  b  2  3 
6  b  3  5 
7  b  4  1 
+0

코드 편집기 RStudio (특정 문제에 대한 RStudio 태그를 저장하십시오 예를 들어, 당신은 RGui 또는 명령에 작동 코드를 RStudio에서는 작동하지 않습니다). – Gregor

답변

2

이 시도 :

your_data$df = lapply(your_data$path, read_csv) 
tidyr::unnest(your_data) 
0

를 첫 번째 데이터 파일이 index라고 가정, 또는

do.call(rbind,apply(index, 1, function(X){temp = read.csv(X[2]);cbind(name=X[1], temp)})) 

가하는 for 루프 코드 청소기를해야한다 :

를 purrr 사용 :: map_df
2

library(tidyverse) 

df %>% 
    deframe %>% 
    map_df(read_csv, .id = "name") 

출력 :

# A tibble: 7 x 3 
    name  t  x 
    <chr> <int> <int> 
1  a  1  3 
2  a  2  1 
3  a  3  6 
4  b  1  4 
5  b  2  3 
6  b  3  5 
7  b  4  1 
관련 문제