2011-12-31 7 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'などを返します。 'find(" times ")'を試したり、 'package:chron" 'からRが期待する関数を見つけていることを' times'とタイプするだけです。 –

答えて

6

問題はpackage:foreachtimesという名前の関数が含まれていることです。また、検索パスにpackage:chronの前に表示されるため、実際に必要な機能timesを「マスク」します。

つまり、Rがシンボル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()の正しいバージョンを取得することを確認することができ、付属の両方のパッケージを必要とする操作を行い場合:パッケージが添付されている順番を逆にする(OKでもすばらしい)。

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

chron :: times()しました。どうもありがとうございました! – screechOwl

+0

Bravo for find( "関数名")。 –

関連する問題