2016-10-12 1 views
1

패키지를 설치하는 동안 대소 문자를 무시하거나 대소 문자를 구분하지 않을 수있는 방법이 있습니까?패키지 설치 중 대소 문자를 구별하지 않는 패키지 설치 (대소 문자 무시)

예, RWeka 패키지. install.packages("rweka")처럼 설치하거나 어떤 식 으로든 ignore.case = TRUE을 설정할 수 있습니까? 그런 식의 인수는 없습니다. install.packages()

+1

이론상으로 두 개의 패키지 RWeka와 rweka가있을 수 있습니다 (CRAN이 허용하지 않지만). 그러나 그럴 필요는 없습니다. – Roland

답변

3

패키지 이름은 대/소문자를 구분합니다. 따라서 사례를 무시하면 고유 한 일치 항목을 얻을 수 없습니다.

#get list of packages 
packages <- available.packages()[,"Package"] 
#find matches by ignoring case 
my_packs <- packages[grep("^rweka$",packages,ignore.case=TRUE)] 
#install - beware of multiple matches 
install.packages(my_packs) 

참고 grep에서 정규 표현식은 시작과 문자열의 끝을 지정하고, 그렇지 않으면 당신은 당신이로 원하는 것을 포함 더 많은 패키지를 끝낼 수 있습니다 : 데 당신이 원하는 것을 달성하기 위해 가장 좋은 방법은, 말했다 하위 문자열 당신의 ~/.Rprofile에서

install_p <- function(x) { 
    av <- available.packages() 
    av <- setNames(av[,"Package"], tolower(av[,"Package"])) 
    install.packages(av[x]) 
} 

을하며 안전 할 것입니다 :

1

당신과 함께 R을 보강 할 수 있습니다

install_p("rweka") 

이후 : 롤랜드에서 언급 한 바와 같이

sum(duplicated(tolower(unname(av[,"Package"])))) 

0입니다 그의 코멘트.

CRAN 은 R 패키지의 용량이 커짐에 따라 자체 정책을 완화합니다 (현재 10K에 가깝습니다).하지만 여전히 일치하는 이름을 허용하지 않는다고 생각됩니다.

관련 문제