データ(たとえば、data.frame内)を使用する場合、ユーザーは次を使用して数字の表示を制御できます。
_options(digits=3)
_
このようにdata.frameをリストします。
_ttf.all
_
ユーザーがこのようにExcellにデータを貼り付ける必要がある場合
_write.table(ttf.all, 'clipboard', sep='\t',row.names=F)
_
Digitsパラメータは無視され、数値は丸められません。
素敵な出力を見る
_> ttf.all
year V1.x.x V1.y.x ratio1 V1.x.y V1.y.y ratioR V1.x.x V1.y.x ratioAL V1.x.y V1.y.y ratioRL
1 2006 227 645 35.2 67 645 10.4 150 645 23.3 53 645 8.22
2 2007 639 1645 38.8 292 1645 17.8 384 1645 23.3 137 1645 8.33
3 2008 1531 3150 48.6 982 3150 31.2 755 3150 24.0 235 3150 7.46
4 2009 1625 3467 46.9 1026 3467 29.6 779 3467 22.5 222 3467 6.40
_
しかし、Excel(クリップボード)にあるものは丸められません。 write.table()
で制御する方法は?
関数format()
は次のように使用できます。
_write.table(format(ttf.all, digits=2), 'clipboard', sep='\t',row.names=F)
_
format()
は、data.framesを含む多くのクラスのメソッドを持つ汎用関数です。 round()
とは異なり、データフレームがすべて数値ではない場合、エラーはスローされません。書式設定オプションの詳細については、_?format
_からヘルプファイルを参照してください
character
列とnumeric
列が混在するデータフレームのソリューションを追加します。最初に _mutate_if
_ を使用してnumeric
列を選択し、round()
関数をそれらに適用します。
_# install.packages('dplyr', dependencies = TRUE)
library(dplyr)
df <- read.table(text = "id year V1.x.x V1.y.x ratio1
a 2006 227.11111 645.11111 35.22222
b 2007 639.11111 1645.11111 38.22222
c 2008 1531.11111 3150.11111 48.22222
d 2009 1625.11111 3467.11111 46.22222",
header = TRUE, stringsAsFactors = FALSE)
str(df)
#> 'data.frame': 4 obs. of 5 variables:
#> $ id : chr "a" "b" "c" "d"
#> $ year : int 2006 2007 2008 2009
#> $ V1.x.x: num 227 639 1531 1625
#> $ V1.y.x: num 645 1645 3150 3467
#> $ ratio1: num 35.2 38.2 48.2 46.2
df <- df %>%
mutate_if(is.numeric, round, digits = 2)
df
#> id year V1.x.x V1.y.x ratio1
#> 1 a 2006 227.11 645.11 35.22
#> 2 b 2007 639.11 1645.11 38.22
#> 3 c 2008 1531.11 3150.11 48.22
#> 4 d 2009 1625.11 3467.11 46.22
_
reprexパッケージ (v0.2.1.9000)によって2019-03-17に作成