首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将反斜杠(\)插入数据帧列名?

如何将反斜杠(\)插入数据帧列名?
EN

Stack Overflow用户
提问于 2020-08-18 22:34:34
回答 2查看 502关注 0票数 1

为了显示目的,我试图在数据帧列名中插入一个反斜杠(\)。

如果我只是插入反斜杠('\'),那么由于某种原因,它将从列名中消失:

代码语言:javascript
复制
x <- head(mtcars[ , 1:3])

names(x)[1] <- "back \ slash"
##backslash missing
names(x)[1]
# [1] "back  slash"
x
#                   back  slash cyl disp
# Mazda RX4                21.0   6  160
# Mazda RX4 Wag            21.0   6  160
# Datsun 710               22.8   4  108
# Hornet 4 Drive           21.4   6  258
# Hornet Sportabout        18.7   8  360
# Valiant                  18.1   6  225

但是,如果我试图转义反斜杠('\\'),则在列名中得到两个反斜杠:

代码语言:javascript
复制
names(x)[1] <- "back \\ slash"
##two backslashes
names(x)[1]
# [1] "back \\ slash"
x
#                   back \\ slash cyl disp
# Mazda RX4                  21.0   6  160
# Mazda RX4 Wag              21.0   6  160
# Datsun 710                 22.8   4  108
# Hornet 4 Drive             21.4   6  258
# Hornet Sportabout          18.7   8  360
# Valiant                    18.1   6  225

如何将one反斜杠(\)插入数据帧列名?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-08-18 23:04:14

既然您打算将它与knitr::kable一起使用,那么请尝试如下:

代码语言:javascript
复制
x <- mtcars[1:3,1:3]
x <- mtcars[1:4,1:3]
knitr::kable(x, col.names=replace(names(x), 1, "foo \\ bar"))
# |               | foo \ bar| cyl| disp|
# |:--------------|---------:|---:|----:|
# |Mazda RX4      |      21.0|   6|  160|
# |Mazda RX4 Wag  |      21.0|   6|  160|
# |Datsun 710     |      22.8|   4|  108|
# |Hornet 4 Drive |      21.4|   6|  258|
票数 2
EN

Stack Overflow用户

发布于 2020-08-18 22:46:50

R的默认行为是打印转义字符,即使在字符向量中也是如此:

代码语言:javascript
复制
c("sd\\sd")
#> [1] "sd\\sd"
nchar("sd\\sd") 
#> [1] 5
# "sd\\sd" is 6 character if you count the second backslash
# while cat prints the actual string
cat(c("sd\\sd"))
#> sd\sd
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63477540

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档