3

これは好奇心であり、コンセプトがばかげているため、私が求めていることを実行できるとは思えません。何かを丸める場合、丸めを解除できますか?

そう:

x <- round(rnorm(10))
x

元の何かが何であるかわからない場合は、によって生成された元の数値に戻すことができますrnormか?

ユーザー向けの関数を書くとき、表示を良くするために丸め引数を入れることがよくありますが、常にユーザーに数字の制御を与え、リストオブジェクトの数字の丸めを独立して制御できるようにします。これにより、関数はdigits=引数でいっぱいになります。ユーザーが元の値を魔法のように再抽出できることがわかっている場合は、これらの引数を内部的に関数に入れます。数字をそのままにして、クラスに割り当てて print メソッドを使用することもできますが、リストの場合、これはせいぜい苦痛です。

4

3 に答える 3

6

実際のデータ自体を丸めた場合、通常は復元できません。代わりに、カスタムを使用するか、のprintようなものを試して表示を変更する必要がありますoption(digits=3)。乱数生成の非常に特殊なケースでは、最初にシード ( set.seed) を設定し、それを記憶してから、同じシードからランダム データを再生成すると、元のデータを復元できます。

于 2012-11-04T09:32:25.523 に答える
4

sprintf物事が印刷される方法を変更するために使用できます。

myfun <- function(){
    x <- rnorm(3)
    print(sprintf("%.3f", x))
    invisible(x)
}

out <- myfun()
#[1] "-0.527" "0.226"  "-0.168"
out
#[1] -0.5266562  0.2262599 -0.1680460
于 2012-11-04T15:11:18.237 に答える
1

無理やり我慢できないから…

x<-runif(100)*10
z<-round(x,2)
y<-x-z
于 2012-11-04T16:23:06.210 に答える