我的数据框如下:
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?
答案 0 :(得分:0)
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
要选择特定的列,请在""
或``
答案 1 :(得分:0)
您还可以使用tidyverse
包中的小对象。
library(tibble)
data <- tibble("Variable with space"=letters)
data
即使直接打印时变量名周围有打勾号,它也不会在其他打印情况下(例如绘图或表格)停留在该位置。
答案 2 :(得分:0)
也将@Roland提到的解决方案发布给其他人作为答案:
在创建check.names = FALSE
时使用data.frame
:
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)
在打印之前。