如何控制write.table()输出中的小数位数?

处理数据时(例如,在data.frame中),用户可以通过使用控制显示数字

options(digits=3) 

并像这样列出data.frame。

 ttf.all 

当用户需要像这样将数据粘贴到Excell中

 write.table(ttf.all, 'clipboard', sep='\t',row.names=F) 

数字参数被忽略,数字不被舍入。

看到很好的输出

 > ttf.all year V1.xx V1.yx ratio1 V1.xy V1.yy ratioR V1.xx V1.yx ratioAL V1.xy V1.yy 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()是一个generics函数,它有很多类的方法,包括data.frames。 与round()不同,如果你的数据框不是全部的数字,它不会抛出错误。 有关格式选项的更多详细信息,请参阅通过?format的帮助文件