2011-12-31 2 views
2

자정 이후로 시간을 초로 변환하려고합니다. chron 패키지에서 times() 함수를 사용하는 것이 어려워졌습니다. 사용 방법은 다음과 같습니다.R chron times() 함수가 작동하지 않습니다.

> library(chron) 
> 24 * 24 * 60 * (times(50)) 
Error in 24 * 24 * 60 * (times(50)) : 
    non-numeric argument to binary operator 
> 
> 
> library(chron) 
> 24 * 24 * 60 times(5000) 
Error: unexpected symbol in "24 * 24 * 60 times" 

의견이 있으십니까?

UPDATE :

> sessionInfo() 
R version 2.14.0 (2011-10-31) 
Platform: i386-pc-mingw32/i386 (32-bit) 

locale: 
[1] LC_COLLATE=English_United States.1252 
[2] LC_CTYPE=English_United States.1252 
[3] LC_MONETARY=English_United States.1252 
[4] LC_NUMERIC=C       
[5] LC_TIME=English_United States.1252  

attached base packages: 
[1] stats  graphics grDevices utils  datasets methods base  

other attached packages: 
[1] RODBC_1.3-3  nnet_7.3-1   doSNOW_1.0.3  foreach_1.3.0  
[5] codetools_0.2-8 iterators_1.0.3 snow_0.3-7   randomForest_4.6-2 
[9] chron_2.3-42  

loaded via a namespace (and not attached): 
[1] tools_2.14.0 

UPDATE 2

> find("times") 
[1] "package:foreach" "package:chron" 
> times 
function (n) 
{ 
    if (!is.numeric(n) || length(n) != 1) 
     stop("n must be a numeric value") 
    foreach(icount(n), .combine = "c") 
} 
<environment: namespace:foreach> 

UPDATE 3

> sessionInfo() 
R version 2.14.0 (2011-10-31) 
Platform: i386-pc-mingw32/i386 (32-bit) 

locale: 
[1] LC_COLLATE=English_United States.1252 
[2] LC_CTYPE=English_United States.1252 
[3] LC_MONETARY=English_United States.1252 
[4] LC_NUMERIC=C       
[5] LC_TIME=English_United States.1252  

attached base packages: 
[1] stats  graphics grDevices utils  datasets methods base  

other attached packages: 
[1] chron_2.3-42 
> find("times") 
[1] "package:chron" 
> 24 * 24 * 60 * (times * (50)) 
Error in times * (50) : non-numeric argument to binary operator 
+2

나는 Josh와 같은 결과를 얻습니다. check.built = TRUE로 R과'update.packages'를 업데이트해야 할 수도 있습니다. 최소한'sessionInfo()'를 제공해야합니다. –

+3

첫 번째 버전 인'24 * 24 * 60 * (times (50))'은'[1] 1728000' 등을 반환합니다. 'package (chron)''에서 R이 원하는 함수를 찾는 지 확인하기 위해'find ("times")'를 시도했거나'times'를 타이핑하면됩니까? –

답변

6

문제는 package:foreachtimes라는 함수를 포함한다. 그리고 검색 경로에 package:chron 앞에 나오기 때문에 실제로 원하는 times 함수의 '마스크'가됩니다.

다른 말로하면, 기호 times에 대한 동적 검색을 수행 할 때 R은 찾으려는 기능과 관련된 문자에 도달하기 전에 일치하는 문자 (이 경우 잘못된 문자)를 찾습니다.

> library(chron) 
> library(foreach) 
Loading required package: iterators 
Loading required package: codetools 
foreach: simple, scalable parallel programming from Revolution Analytics 
Use Revolution R for scalability, fault tolerance and more. 
http://www.revolutionanalytics.com 

Attaching package: ‘foreach’ 

The following object(s) are masked from ‘package:chron’: 

    times 

당신이, 당신은 당신이 중 하나에 의해 times()의 오른쪽 버전을 보장 할 수 있습니다 연결된 두 패키지를 필요로 할 경우

당신은 입력 후 새로운 R 세션을 시작하고, 이것을 볼 수 있습니다 : 패키지가 부착 된 순서를 뒤집습니다 (OK지만 좋지는 않음). 을 다음과 같이 입력하여 원하는 기능을 명시 적으로 지정하십시오.

24 * 24 * 60 * (chron::times(50)) 
+0

chron :: times() 그것을했습니다. 고마워요! – screechOwl

+0

Bravo for find ("함수 이름"). –

관련 문제