2014-04-08 3 views
1

저는 초보자입니다. 가능한 한 간단하게하십시오.URL 내의 인용 부호 및 공백 제거

Yahoo 견적 데이터를 가져 오기위한 URL을 작성하려고합니다. "R in Nutshell"스크립트를 성공적으로 사용하지 못했을 때, 나는 내 자신을 모으는 것으로 변했습니다. 다음은 내가 생성 한 URL의 예입니다.

"http://ichart.finance.yahoo.com/table.csv? s=XLK &a= 2 &b= 24 &c= 2014 &e= 04 &d= 07 &f= 2014" 

이 출력 내에서 인용 부호와 공백을 제거하는 방법을 잘 모르겠습니다. 나는 factor()으로 따옴표를 제거 할 수 있었지만, 그때 요인을 제거 할 수 없었다. Gsub\이 포함되거나 포함되지 않은 인용 부호가 마음에 들지 않습니다. 또한 공백에 대한 정규식을 사용하여 시도하면 [ ]을 좋아하지 않습니다.

나는 내 접근 방식을 번갈아 가며 열지 만 아주 기본적인 수준으로 유지하십시오.

'\"'을하고 모든 일치를 대체하기 위해 활성화 된 g 수정과 ''로 교체 :

+1

것은, 사용보고 고려하는 것이 좋습니다'paste0' 대신에 문자열을 결합 할 때 공백을 제거합니다. 그리고 당신이 가지고있는 URL과 같은 모든 문자열은 그들 주위에''''로 인쇄 될 것입니다. 문자열 자체는 실제로''''''를 포함하지 않습니다. – thelatemail

+0

다른 방식으로 시도하기 전에 "R in a Nutshell"의 스크립트에서 잘못 본 점에 대해 질문하지 않는 이유는 무엇입니까? 또한 현재 가지고있는 결과를 얻으려는 R 코드를 보여줄 수도 있습니다. –

+0

의견 및 제안에 감사드립니다. 나는 그들을 내일 모두 공부할 것이다. R은이 시점에서 발굴하기는 어렵지만, 일반적으로 나는 지식에 대해 배고프다. 그래서 모든 측면 여행은 코딩의 일반적인 의미를 더합니다. 내 녹슨, 최소한의 재능에 대한 요구 사항을 추가하면 혼란에 빠지게됩니다. – Mike

답변

1

URL을 만들 수 paste()를 사용하지 마십시오. 대신 specfically을 만들 수 있도록 설계 httr::modify_url처럼 함수를 사용

library(httr) 
base_url <- "http://ichart.finance.yahoo.com/table.csv" 

modify_url(base_url, query = list(
    s = "XLK", 
    a = 2, # start month 
    b = 24, # start day 
    c = 2014, # start year 
    d = 04, # end month 
    e = 07, # end day 
    f = 2014 # end year 
)) 

## [1] "http://ichart.finance.yahoo.com/table.csv?s=XLK&a=2&b=24&c=2014&d=4&e=7&f=2014" 

를 이것은 또한 제대로 그것을 필요로 문자를 이스케이프 처리됩니다. 이 더 나은, 당신은 이름 매개 변수를 사용하여 자체 을 문서화하는 기능으로이를 돌 수 있었다 : 당신은`paste` 기능을 사용하여 해당 URL을 만든 경우

library(lubridate) 

yahoo_stock <- function(stock, start, end) { 
    start <- ymd(start) 
    end <- ymd(end) 

    modify_url(base_url, 
    query = list(
     s = "XLK", 
     a = month(start), b = mday(start), c = year(start), 
     d = month(end), e = mday(end), f = year(end) 
    ) 
) 
} 
yahoo_stock("XLK", "2014-02-24", "2014-07-04") 

## [1] "http://ichart.finance.yahoo.com/table.csv?s=XLK&a=2&b=24&c=2014&d=7&e=4&f=2014"