2016-12-20 1 views
5

함수와 함께 map() 함수를 사용할 때 몇 가지 문제가 있습니다.중첩 된 데이터 프레임에서`map()`사용하기

나는 다음과 같이 설정 일부 데이터를 가지고 :

counter 

    counter   date_time total 
1 06032013 2013-06-03 16:00:00 476 
2 06032013 2013-06-03 17:00:00 578 
3 06032013 2013-06-03 18:00:00 406 
4 06032013 2013-06-03 19:00:00 272 
5 06032013 2013-06-03 20:00:00 240 
6 06032013 2013-06-03 21:00:00 96 
7 06032013 2013-06-03 22:00:00 67 
8 06032013 2013-06-03 23:00:00 37 
9 06032013 2013-06-04 00:00:00 10 
10 06032013 2013-06-04 01:00:00 11 
11 06032013 2013-06-04 02:00:00  8 
12 06032013 2013-06-04 03:00:00  9 
13 06032013 2013-06-04 04:00:00 23 
14 06032013 2013-06-04 05:00:00 83 
15 06032013 2013-06-04 06:00:00 291 
16 06032013 2013-06-04 07:00:00 532 
17 06032013 2013-06-04 08:00:00 434 
18 06032013 2013-06-04 09:00:00 326 
19 06032013 2013-06-04 10:00:00 310 
20 06032013 2013-06-04 11:00:00 292 

내가 다음 counter 필드를 기준으로 이러한 데이터를 중첩. 예를 들면 다음과 같습니다.

내가 원하는 것은 중첩 된 각 데이터 프레임에 매핑하고 중첩 된 데이터 프레임에 xts 행렬을 구성하는 것입니다. 나는 다음과 같은 많은 변형을 시도했다 :

y %>% mutate(stuff = map(xts(data$total, order.by = data$date_time))) 

나는 Error in data$date_time : object of type 'closure' is not subsettable으로 인사한다.

어떤 생각이라도 좋을 것입니다!

+3

구문이 잘못되었습니다. 이것을 시도하십시오 :'% % % mutate (stuff = map (data, ~ xts (.x $ total, order.by = .x $ date_time)))' –

+0

만약 purrr의 공식 표기법이 혼란 스럽다면, 표준 익명 함수 표기법 :'y %> % mutate (stuff = map (data, function (x) {xts (x $ total, order.by = x $ date_time)}))'. 'data', 당신이 반복하고자하는리스트 컬럼의 이름을 전달하고, 함수를 넘겨주는 변수를 통해'data'의 각 요소 내의 데이터를 참조하십시오. (기본값은'.x'입니다.). – alistaire

+0

@MichaelGriffiths 답변을 작성 하시겠습니까? – alistaire

답변

4

@ Michael-Griffiths 귀하의 도움에 감사드립니다. 다음 코드는 나를 위해 일했습니다 :

y %>% mutate(stuff = map(data, ~xts(order.by = .x$date_time))) 

# A tibble: 140 × 3 
    counter    data  stuff 
    <fctr>    <list> <list> 
1 06032013 <tibble [91 × 2]> <S3: xts> 
2 62295051 <tibble [310 × 2]> <S3: xts> 
3 81295014 <tibble [301 × 2]> <S3: xts> 
4 81295015 <tibble [294 × 2]> <S3: xts> 
5 81295091 <tibble [303 × 2]> <S3: xts> 
6 81295092 <tibble [306 × 2]> <S3: xts> 
7 81313062 <tibble [142 × 2]> <S3: xts> 
8 81313063 <tibble [142 × 2]> <S3: xts> 
9 82295046 <tibble [139 × 2]> <S3: xts> 
10 82295050 <tibble [141 × 2]> <S3: xts> 
# ... with 130 more rows 

그래도 100 % 확신 할 수 없습니다. 그러나 어이, 그것은 작동했다.

관련 문제