操作字符向量:删除和添加引号,添加字符串

Manipulating character vectors: removing and adding quotes, adding strings

我有 vector_1,我想用代码对其进行操作,以便自动生成 vector_2vector_3

# What I have
> vector_1 <- c("Group_A", "Group_B", "Group_C", "Group_D")
> vector_1
[1] "Group_A" "Group_B" "Group_C" "Group_D"

我想实现以下目标:

# What I want to achieve by manipulating vector_1: 
vector_2 = c("Group_A, Group_B, Group_C, Group_D")
vector_3 = c(" ", "Group_A" = 3, "Group_B" = 3, "Group_C" = 3, "Group_D" = 3))

我假设 noquote() 是一个起点,但后来我卡住了。

> vector_x <- noquote(vector_1)
> vector_x
[1] Group_A Group_B Group_C Group_D
# Here I'm stuck...

Base R 可以,但我更喜欢在有或没有管道的 tidyverse 中工作。

--- 编辑 ---

在评论中跟进 Sotos 的问题:

我想将 vector_3 用作 kableExtra 中的 header。 而不是写...

kbl(
[hidden code] %>%
add_header_above(c(" ", "Group_A"=3, "Group_B"=3, "Group_C"=3, "Group_D"=3)) %>%
[more_code]
)

我无法制作可在 PDF 之外运行的可重现示例。这是 link 到 add_header_above():

https://www.rdocumentation.org/packages/kableExtra/versions/1.3.4/topics/add_header_above

vector_2:

paste(vector_1, collapse = ", ")
# [1] "Group_A, Group_B, Group_C, Group_D"

和vector_3:

setNames(c(" ", rep(3, length(vector_1))), c("", vector_1))
#     Group_A Group_B Group_C Group_D 
# " "     "3"     "3"     "3"     "3" 

您可以将 toString 用于 vector_2,将 setNames 用于 vector_3:

toString(vector_1)
# [1] "Group_A, Group_B, Group_C, Group_D"

c(" ", setNames(rep(3, 4), vector_1))
#        Group_A Group_B Group_C Group_D 
#    " "     "3"     "3"     "3"     "3"