如何将不断变化的变量名称分配给不断变化的变量名称?

How can I assign changing variable name to a changing variable name?

如何将不断变化的变量名分配给不断变化的变量名? 我见过类似的问题,但它们是关于为更改变量名称赋值的。 我有一个名为 "house1"、“house2”等的变量列表。每个变量都分配了一个值。例如。房子 1 = 1 美元,房子 2 = 50 美元,等等。 我想创建 "building1"、"building2" 等类型的变量,并将每个 "house" 分配给相应的 "building"。所以,我想到底有building1 = 1 dollar, building2 = 50 dollars等等

for(i in 1:15) 
{ 
  name_house <- paste("house", i, sep = "")
  name_building <- paste("building",i, sep="")
  assign(name_house, name_building)
}

我知道有人会建议创建一个包含所有建筑物的变量列表,但是在我之前房屋已经被设置为不同的变量,我被要求以相同的方式进行建造。

如果你以此开头 -

( x <- setNames(paste(1:4, "dollars"), paste0("house", 1:4)) )
#      house1      house2      house3      house4 
# "1 dollars" "2 dollars" "3 dollars" "4 dollars" 

然后您可以使用以下内容创建一个具有不同名称的相同向量

setNames(x, sub("house", "building", names(x), fixed = TRUE))
#   building1   building2   building3   building4 
# "1 dollars" "2 dollars" "3 dollars" "4 dollars" 

我在 data.frame 中取了 houses 及其对应的值。看看,如果这对你有用,

houses <- c("house1", "house2", "house3",  "house4", "house5")
name_house <- c(1, 2, 3, 4, 5)
df <- data.frame(houses, name_house)
> df
#houses name_house
#1 house1          1
#2 house2          2
#3 house3          3
#4 house4          4
#5 house5          5

然后将 house 的值替换为 buildings

df$houses <- gsub("house", "building", df$houses)
> df
# houses name_house
#1 building1          1
#2 building2          2
#3 building3          3
#4 building4          4
#5 building5          5