2016-07-01 2 views
0

여러 번 물어 봤지만 문제를 해결할 수있는 올바른 방법을 찾지 못했습니다.데이터 프레임 (요인)을 xts로 변환합니다.

27.07.2015,100 
28.07.2015,100.1504 
29.07.2015,100.1957 
30.07.2015,100.5044 
31.07.2015,100.7661 
03.08.2015,100.9308 
04.08.2015,100.8114 
05.08.2015,100.6927 
06.08.2015,100.7501 
07.08.2015,100.7194 
10.08.2015,100.8197 
11.08.2015,100.8133 

가 지금은 그래서는 PerformanceAnalytics 패키지를 사용할 수 있습니다 XTS에 내 data.frame을 변환 할 필요가 : 나는처럼 보이는, 내가 업로드 아주 간단한 CSV 파일이 있습니다. 내 data.frame는 구조를 가지고 : 나는 as.xts 기능이 다른 것을 시도

> str(mpey) 
'data.frame': 243 obs. of 2 variables: 
$ V1: Factor w/ 243 levels "01.01.2016","01.02.2016",..: 210 218 228 234 241 21 30 38 45 52 ... 
    - attr(*, "names")= chr "5" "6" "7" "8" ... 
$ V2: Factor w/ 242 levels "100","100.0062",..: 1 4 5 10 16 20 17 13 15 14 ... 
    - attr(*, "names")= chr "5" "6" "7" "8" ... 

을하지만 그것이 작동되도록 할 수있다. 이 문제를 극복하도록 도와 주실 수 있습니까?

+0

V1이 요인 일 수도 있고, 문자 또는 날짜 등급으로 변경할 수도 있습니다. 그리고 V2는 factor입니다. 숫자로 변경해야 할 수도 있습니다. – zx8754

+0

이미 시도했지만 할 수 없습니다. 그것은 항상 내게 *** as.Date.factor (mpey [, 1]) charToDate (x) 오류 : 문자열이 표준 모호하지 않은 형식으로되어 있지 않거나 시도 할 경우 *** > as.Date charToDate (x) 오류 : 문자열이 표준 모호하지 않은 형식이 아닙니다 – paolino

+0

형식을 "% d/% m/% Y"형식으로 추가하면 252 개의 NA 행을 가져옵니다 ... .. – paolino

답변

0

여기서 이러한 tibbles ("단정"데이터 프레임)에 XTS로 시계열 개체 강요위한 XTS 오브젝트 데이터 프레임들을 강요위한 as_xts()as_tibble() 포함 된 tidyquant 패키지를 이용한 용액이다.

우리는 데이터 프레임을 포맷해야,

> data_df 
# A tibble: 12 × 2 
     date value 
     <fctr> <fctr> 
1 27.07.2015  100 
2 28.07.2015 100.1504 
3 29.07.2015 100.1957 
4 30.07.2015 100.5044 
5 31.07.2015 100.7661 
6 03.08.2015 100.9308 
7 04.08.2015 100.8114 
8 05.08.2015 100.6927 
9 06.08.2015 100.7501 
10 07.08.2015 100.7194 
11 10.08.2015 100.8197 
12 11.08.2015 100.8133 

먼저 데이터를 다시 만듭니다. 날짜와 값은 모두 인수로 저장되며 날짜와 두 개의 클래스에 있어야합니다. 우리는 tidyquant을로드하고 데이터 프레임을 다시 포맷합니다. tidyquanttidyverse 및 재무 패키지를로드하므로 다른 것을로드 할 필요가 없습니다. 일 - 월 - 연도 형식의 문자를 날짜로 변환하는 lubridate::dmy으로 날짜를 변환 할 수 있습니다. 값은 문자에서 문자로, 문자에서 이중으로 바뀌어야하며, 이는 as.numericas.character 중첩을 통해 수행됩니다.

> library(tidyquant) 
> data_tib <- data_df %>% 
    mutate(date = dmy(date), 
      value = as.numeric(as.character(value))) 
> data_tib 
# A tibble: 12 × 2 
     date value 
     <date> <dbl> 
1 2015-07-27 100.0000 
2 2015-07-28 100.1504 
3 2015-07-29 100.1957 
4 2015-07-30 100.5044 
5 2015-07-31 100.7661 
6 2015-08-03 100.9308 
7 2015-08-04 100.8114 
8 2015-08-05 100.6927 
9 2015-08-06 100.7501 
10 2015-08-07 100.7194 
11 2015-08-10 100.8197 
12 2015-08-11 100.8133 

이제, 우리는 tidyquant::as_xts() 기능을 사용하여 xts에 강제 할 수 있습니다. date_col = date으로 지정하십시오.

> data_xts <- data_tib %>% 
    as_xts(date_col = date) 
> data_xts 
       value 
2015-07-27 100.0000 
2015-07-28 100.1504 
2015-07-29 100.1957 
2015-07-30 100.5044 
2015-07-31 100.7661 
2015-08-03 100.9308 
2015-08-04 100.8114 
2015-08-05 100.6927 
2015-08-06 100.7501 
2015-08-07 100.7194 
2015-08-10 100.8197 
2015-08-11 100.8133 
관련 문제