[英]Print data.frame with column names with spaces
我的 dataframe 看起来像这样:
sum <- data.frame(
"default LS" = rnorm(3),
"fit LS" = rnorm(3),
"gradient dMNLL/dLS" = rnorm(3)
)
现在,空格已转换为.
(点),出于语法原因:
default.LS fit.LS gradient.dMNLL.dLS
1 0.1157615 0.06711939 1.5897061
2 1.1819154 1.11368192 -0.1730422
3 0.1531863 -0.63845188 0.6946397
我不介意代码,但出于演示目的,我想用空格打印它。
有没有办法用空格打印 data.frame ?
有没有办法用自定义列名打印 data.frame ?
sum <- data.frame(
"default LS" = rnorm(3),
"fit LS" = rnorm(3),
"gradient dMNLL/dLS" = rnorm(3)
)
names(sum)<- gsub("\\."," ", make.names(names(sum), unique = T))
sum
#> default LS fit LS gradient dMNLL dLS
#> 1 -0.7607631 -0.6488190 -2.1846567
#> 2 1.3633617 -0.1891804 1.0127126
#> 3 0.1476440 0.6775571 -0.7808632
sum[["default LS"]]
#> [1] -0.7607631 1.3633617 0.1476440
到 select 一个特定的列,列名传入""
或``
您还可以使用tidyverse
包中的 tibble 对象。
library(tibble)
data <- tibble("Variable with space"=letters)
data
即使直接打印时它在变量名周围有刻度,但它不会在其他打印情况下(如绘图或表格)出现。
将@Roland提到的解决方案也发布给其他人作为答案:
创建data.frame
时使用check.names = FALSE
:
sum <- data.frame(
"default LS" = rnorm(3),
"fit LS" = rnorm(3),
"gradient dMNLL/dLS" = rnorm(3),
check.names = FALSE
)
但这使得使用这个 data.frame 很麻烦,因为您需要像sum$"fit LS"
这样的语法。 更好的做法:
names(sum) <- gsub(".", " ", names(sum), fixed = TRUE)
就在打印之前。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.