R 2.5.0 の変更予定

注意:オリジナル文書中のすべてを翻訳・記載しているわけではありません。

オリジナル文書



ユーザに見える変更

  • 論理ベクトルオブジェクトに対して,str.default はより少ない要素を出力するようになった
    R2.5.0
    > x <- rep(TRUE, 500)
    > str(x)
     logi [1:500] TRUE TRUE TRUE TRUE TRUE TRUE ...
    R2.4.0 まで
    > x <- rep(TRUE, 500)
    > str(x)
     logi [1:500] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE ...
  • abs(<整数>) が <整数> を返すようになった R2.5.0
    > class(abs(-10L))
    [1] "integer"
    R2.4.1 まで
    > class(abs(-10L))
    エラー:"class(abs(-10L" に構文エラーがありました

新たな仕様・関数

  • nls.cotrol()に,printEval=, warnOnly= の 2 引数が加えられた。
  • ファイル・ディレクトリのテスト file_test()
    > file_test("-f", "test.dat") # ファイルか?
    [1] TRUE
    > file_test("-d", "test.dat") # ディレクトリか?
    [1] FALSE
    > file_test("-nt", "test.dat", "test2.dat") # 新しいか?
    [1] FALSE
  • 無意味なエスケープシークェンスに警告を出すようにした。
    R2.5.0
    > x <- "abc.def"
    > x
    [1] "abc.def"
    > x <- "abc\.def"
    Warning messages:
    1: '\.' is an unrecognized escape in a character string 
    2: '\.' is an unrecognized escape in a character string 
    > x
    [1] "abc.def"
    > x <- "abc\\.def"
    > x
    [1] "abc\\.def"
    R2.4.0 まで
    > x <- "abc.def"
    > x
    [1] "abc.def"
    > x <- "abc\.def"
    > x
    [1] "abc.def"
    > x <- "abc\\.def"
    > x
    [1] "abc\\.def"
  • 書式化されたリスト出力関数 formatUL(), formatOL(), formatDL()
    html の <ul>-</ul>, <ol>-</ol>, <dl>-</dl>, <dt>, <dd> みたいなもの(何に使おうか?)
    > vec <- c("formatUL", "formatOL")
    > formatUL(vec) # 番号なし箇条書き
    [1] "* formatUL" "* formatOL"
    > formatOL(vec) # 番号つき箇条書き
    [1] "1. formatUL" "2. formatOL"
    -----------
    > lst <- matrix(c("formatDL", "formatUL",
                      "項目名とその定義", "項目番号有り無しのリスト"),
                    ncol=2)
    > formatDL(lst) # 項目と定義(表型)
    [1] "formatDL            項目名とその定義"        
    [2] "formatUL            項目番号有り無しのリスト"
    > formatDL(lst, style="list") # 項目と定義(リスト型)
    [1] "formatDL: 項目名とその定義"        
    [2] "formatUL: 項目番号有り無しのリスト"
  • 整数値をローマ数字表記に変換する関数 as.roman()
    > i <- sample(2006, 20, replace=TRUE)
    > r <- as.roman(i)
    > i
     [1] 1527  441  382  114  209  207  927  527  363 1563 1910  522 1203
    [14]  705   88 1526  839    4 1977 1050
    > r
     [1] MDXXVII   CDXLI     CCCLXXXII CXIV      CCIX      CCVII    
     [7] CMXXVII   DXXVII    CCCLXIII  MDLXIII   MCMX      DXXII    
    [13] MCCIII    DCCV      LXXXVIII  MDXXVI    DCCCXXXIX IV       
    [19] MCMLXXVII ML
  • binom.test() の整数引数
    計算による数値を引数にするときなどの,微細な誤差を許容するようになった。
    R2.5.0
    > binom.test(1.000000001, 10.000000001, p=0.5)
    
    	Exact binomial test
    
    data:  1.000000001 and 10.000000001 
    number of successes = 1, number of trials = 10, p-value = 0.02148
    alternative hypothesis: true probability of success is not equal to 0.5 
    95 percent confidence interval:
     0.002528579 0.445016117 
    sample estimates:
    probability of success 
                       0.1 
    R2.4.0 まで
    > binom.test(1.000000001, 10.000000001, p=0.5)
    以下にエラーbinom.test(1.000000001, 10.000000001, p = 0.5) : 
            'x' は非負整数でなければなりません
  • abbreviate() は 8191文字以下の文字列しか扱えなかったが,その制限はなくなった
  • withVisible() 関数は,1つの引数をとり,引数を評価した結果と,それが自動的にプリントされるかどうかの論理値の2つを要素として持つリストを返す。
    > withVisible(x <- 1)
    $value
    [1] 1
    
    $visible
    [1] FALSE
    
    > withVisible((x <- 1))
    $value
    [1] 1
    
    $visible
    [1] TRUE
  • system.time() と proc.time() が戻り値の表示に名前を付すようになった。
    > system.time(sin(x))
               user          system           total   user.children system.children 
              0.000           0.001           0.013           0.000           0.000
  • 実数(numeric)ではなく整数(integer)を表すための,接尾辞 L の導入。記憶領域の節約になるんでしょうかね。long int といえば 8 バイト整数だけど L は 4 バイト整数みたいだ。
    例: 100L, 0x10L, 1e2L
    > class(100)
    [1] "numeric"
    > class(100L)
    [1] "integer"
    > x <- 1:10L
    > class(x)
    [1] "integer"
  • file 関数が,X11 のクリップボードの内容も読めるようになった。
  • boxplot(*, notch = TRUE) で,ノッチがヒンジの外にあるような場合に警告を出すようになった。
  • uniroot において,設定した区間のいずれかで関数値が0になる(解である)ときに,ちゃんと解であるとするようになった。
    R2.4.0 まで
    > uniroot(function(x) (x-2)*(x+3), lower=2, upper=10)
    以下にエラーuniroot(function(x) (x - 2) * (x + 3), lower = 2, upper = 10) : 
            f() の端点での値が異なった符号を持ちません
    R2.5.0
    > uniroot(function(x) (x-2)*(x+3), lower=2, upper=10)
    $root
     [1] 2
    
    $f.root
    [1] 0
    
    $iter
    [1] 0
    
    $estim.prec
    [1] 0
  • cut.default 関数が ordered_result という引数を持つようになった
    > cut(1:10, 3)
     [1] (0.991,4] (0.991,4] (0.991,4] (4,7]     (4,7]     (4,7]     (4,7]    
     [8] (7,10]    (7,10]    (7,10]   
    Levels: (0.991,4] (4,7] (7,10]
    > cut(1:10, 3, ordered_result=TRUE)
     [1] (0.991,4] (0.991,4] (0.991,4] (4,7]     (4,7]     (4,7]     (4,7]    
     [8] (7,10]    (7,10]    (7,10]   
    Levels: (0.991,4] < (4,7] < (7,10]
    Levels: の行を見ればわかるが < があるのとないのとの違い。また,class は,前者が "factor" だけであるのに対して,後者は "factor" と "ordered" である。
  • apropos 関数が新しい引数 ignore.case(=TRUE) を持つようになった
    R2.5.0
    > apropos("AIC")
    [1] "AIC.independence" "AIC"              "extractAIC"      
    [4] "mosaicplot"      
    > apropos("aic")
    [1] "AIC.independence" "AIC"              "extractAIC"      
    [4] "mosaicplot"      
    R2.4.0 まで
    > apropos("AIC")
    [1] "AIC.independence" "AIC"              "extractAIC"      
    > apropos("aic")
    [1] "mosaicplot"
  • apropos, find 関数が新しい引数 character.only 引数を持つようになった
    R2.5.0
    > apropos(AIC) # 文字列でなくても良くなった
    [1] "AIC.independence" "AIC"              "extractAIC"      
    [4] "mosaicplot"
  • コマンドラインから起動するとき,-f ファイル名 または --file=ファイル名 というオプションを持つようになった。
    容易に推察できるとおり,ファイルに書かれた R プログラムを実行する。
    % cat test.R
    sqrt(8)
    sin(9)
    % R -f test.R
    
    R version 2.5.0 Under development (unstable) (2007-01-11 r40446)
    Copyright (C) 2007 The R Foundation for Statistical Computing
    ISBN 3-900051-07-0
     【中略】
    [以前にセーブされたワークスペースを復帰します]
    
    > sqrt(8)
    [1] 2.828427
    > sin(9)
    [1] 0.4121185
    %
  • file("stdin") が使えるようになった。stdin() と混同しないように注意。
  • min(), max(), range() が,文字列も扱えるようになった。
    > min("book", "apple", "pen")
    [1] "apple"
    > max("book", "apple", "pen")
    [1] "pen"
    > range("book", "apple", "pen")
    [1] "apple" "pen"
  • 空白を含むファイルの削除
    unlink("foo bar.R") のように,ファイル名にスペースを含むファイルを削除できなかった(注:そんな,へんな名前を付ける方が悪い!)
  • substr とその一属の関数において,引数が NA だったとき,NA の扱いが変だった
    R2.5.0 より
    > substr("abcdef", NA, 3)
    [1] NA
    > substr("abcdef", 2, NA)
    [1] NA
    > substr("abcdef", NA, NA)
    [1] NA
    R2.4.1 まで
    > substr("abcdef", NA, 3)
    [1] "abc"
    > substr("abcdef", 2, NA)
    [1] ""
    > substr("abcdef", NA, NA)
    [1] ""

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Google
WWW を検索 OKADAJP.ORG を検索
Last-modified: 2015-03-01 (日) 01:15:59 (1723d)