将值分配给命名向量中的命名数据框列

assign values to named dataframe columns from named vector

假设我有一个向量和一个数据框:

v <- c(2,2,4,5,6)
names(v) <- c("F", "J", "D", "A", "B")

df<- setNames(data.frame(matrix(ncol = 10, nrow = 1)), c("A" ,"B", "C", "D", "E", "F", "G", "H", "I", "J"))

我现在想将 v 中存储的值分配给 df 的匹配列。将指示 "match",即 v 的名称和 'df' 的列名是相同的。

感谢您的帮助!

您可以使用 match:

df[match(names(v), names(df))] <- v

我们可以直接对 names 中的列进行子集化并赋值

df[names(v)] <- v
df
#  A B  C D  E F  G  H  I J
#1 5 6 NA 4 NA 2 NA NA NA 2