【发布时间】:2021-10-20 07:55:07
【问题描述】:
假设我有一个向量 a = c("Label 1", "Label 2") 和一个向量 b = c(1, 2)。我想知道是否有一种优雅的方法可以从这两个中创建一个向量c = c("Label 1" = 1, "Label 2" = 2)。不幸的是,设置 c <- c(a = b) 并不能完成这项工作 - 但是有没有办法用一行代码来做到这一点?
【问题讨论】:
假设我有一个向量 a = c("Label 1", "Label 2") 和一个向量 b = c(1, 2)。我想知道是否有一种优雅的方法可以从这两个中创建一个向量c = c("Label 1" = 1, "Label 2" = 2)。不幸的是,设置 c <- c(a = b) 并不能完成这项工作 - 但是有没有办法用一行代码来做到这一点?
【问题讨论】:
像这样使用setNames。没有使用任何包。
(rlang包有一个set_names函数,类似,是purrr导入的。)
setNames(b, a)
给予:
Label 1 Label 2
1 2
setNames的来源是这样的:
> setNames
function (object = nm, nm)
{
names(object) <- nm
object
}
<bytecode: 0x000000001044d4b0>
<environment: namespace:stats>
【讨论】:
您可以更改names 的b -
names(b) <- a
b
#Label 1 Label 2
# 1 2
【讨论】:
我们可以使用names<-
`names<-`(b, a)
【讨论】: