在R中预定义数据帧的数字格式

时间:2018-08-08 18:19:00

标签: r format

是否可以预定义数据框的数字格式(例如,四舍五入到指定的小数位数),以便每当我添加新列时都遵循相同的格式?

我尝试使用format {base},但是它只会更改现有列的格式,而不会更改我之后添加的列的格式。

下面给出了一个可行的示例

mydf <- as.data.frame(matrix(rnorm(50), ncol=5))
mydf
           V1          V2         V3          V4          V5
1  -1.3088022 -0.22088032 -1.8739405  1.65276442  1.21762297
2   1.1123253 -0.76042101 -0.1608188  0.39945804 -0.58674209
3  -0.9366654  0.92893610 -0.6905299 -0.37374892 -1.70539909
4   0.4619175 -0.28929198  1.0280021 -0.87998207 -0.34493824
5  -0.3741670 -0.61782368 -1.0435906  0.52166082 -0.29308408
6  -1.2283031 -0.37065379  0.8652538  0.05088202 -1.80997313
7  -1.1137726 -0.97878307  0.5045051  0.85442196  0.02932812
8   0.3373866 -0.46614754 -0.4642278 -0.38438002 -1.47251777
9   0.3245720 -0.06047061 -0.3273080  0.49145133 -0.86507348
10  1.6459180 -1.31076464  1.5627246  0.49841764  0.73895626

以下内容更改了数据框的格式

mydf <- format(mydf, digits=2)
mydf
      V1    V2    V3     V4     V5
1  -1.31 -0.22 -1.87  1.653  1.218
2   1.11 -0.76 -0.16  0.399 -0.587
3  -0.94  0.93 -0.69 -0.374 -1.705
4   0.46 -0.29  1.03 -0.880 -0.345
5  -0.37 -0.62 -1.04  0.522 -0.293
6  -1.23 -0.37  0.87  0.051 -1.810
7  -1.11 -0.98  0.50  0.854  0.029
8   0.34 -0.47 -0.46 -0.384 -1.473
9   0.32 -0.06 -0.33  0.491 -0.865
10  1.65 -1.31  1.56  0.498  0.739

但是当我向数据框中添加新列时,不会应用此格式,请参见下文

mydf$new <- rnorm(10)
mydf
      V1    V2    V3     V4     V5         new
1  -1.31 -0.22 -1.87  1.653  1.218  0.30525117
2   1.11 -0.76 -0.16  0.399 -0.587 -1.83038790
3  -0.94  0.93 -0.69 -0.374 -1.705  0.34830499
4   0.46 -0.29  1.03 -0.880 -0.345 -0.66017888
5  -0.37 -0.62 -1.04  0.522 -0.293  0.03103741
6  -1.23 -0.37  0.87  0.051 -1.810  1.32809006
7  -1.11 -0.98  0.50  0.854  0.029  0.85428977
8   0.34 -0.47 -0.46 -0.384 -1.473 -0.51917266
9   0.32 -0.06 -0.33  0.491 -0.865 -0.37057104
10  1.65 -1.31  1.56  0.498  0.739 -1.32447706

我知道我可以使用print {base}来调整数字,但这也不会改变数据框的基础格式。有什么建议吗?提前致谢。

0 个答案:

没有答案