2017-06-02 64 views
2

我有這樣一個數據幀:如何控制針織科學符號?

> summary 
    variable   value 
1  var1 5.810390e-06 
2  var2 5.018182e-06 
3  var3 5.414286e-06 
4  var4 3.000779e+02 
5  var5 -2.105123e+01 
6  var6 8.224229e-01 

我想打印使用knitr/kable一個字文件內。因此,我使用了下列功能:

knitr::kable(summary, 
      row.names = FALSE, 
      col.names = c("Variable", "Mean")) 

但結果並不令人滿意:

enter image description here

我與變量4〜6行,但可變1〜3真的不容易閱讀這種方式...有沒有辦法控制這種格式?

回答

2

最常用的方法是自己進行格式設置,並將字符變量的數據框發送到kable。例如,這並沒有給最好的顯示器,但它顯示瞭如何分別處理第3行:

df <- data.frame(variable = paste0("var", 1:6), 
     value =c(5.810390e-06, 5.018182e-06, 5.414286e-06, 3.000779e+02, -2.105123e+01, 8.224229e-01)) 
formatted <- df 
formatted$value[1:3] <- format(df$value[1:3], digits = 3) 
formatted$value[4:6] <- format(df$value[4:6], digits = 3) 
knitr::kable(formatted) 

這將產生以下的輸出:

enter image description here

2

您還可以使用as.character()signif()

# using the data frame from the previous answer: 

df <- data.frame(variable = paste0("var", 1:6), 
    value =c(5.810390e-06, 5.018182e-06, 5.414286e-06, 3.000779e+02, 
       -2.105123e+01, 8.224229e-01)) 

df %>% dplyr::mutate_if(is.numeric, funs(as.character(signif(., 3)))) %>% 
    kable(.) 

其中給出:

|variable |value | 
|:--------|:--------| 
|var1  |5.81e-06 | 
|var2  |5.02e-06 | 
|var3  |5.41e-06 | 
|var4  |300  | 
|var5  |-21.1 | 
|var6  |0.822 | 
+0

想要添加:我使用dplyr :: mutate_if來格式化所有數字列,但是您也可以將其應用於單個列的名稱。 – DonJ