为什么我不能使用paste在c()中构造一个字符串?
c("SomeKey" = 123)
Run Code Online (Sandbox Code Playgroud)
好的,打印为:
SomeKey
123
Run Code Online (Sandbox Code Playgroud)
但
a1 <- "Some"
a2 <- "Key"
c(paste(a1, a2) = 123)
Run Code Online (Sandbox Code Playgroud)
生产:
Error: unexpected '=' in " c(paste(a1, a2) ="
Run Code Online (Sandbox Code Playgroud)
奇怪的是,我可以做到这一点:
key <- paste(a1, a2)
c(key = 123)
Run Code Online (Sandbox Code Playgroud)
您正在寻找setNames,它返回具有指定名称和值的命名向量:
setNames(123, paste0(a1, a2))
# SomeKey
# 123
all.equal(setNames(123, paste0(a1, a2)), c("SomeKey" = 123))
# [1] TRUE
Run Code Online (Sandbox Code Playgroud)