如何将更改变量名称分配给更改的变量名称?

时间:2015-10-05 04:35:33

标签: r for-loop assign

如何将更改变量名称分配给更改的变量名称? 我已经看到了类似的问题,但它们是关于为变更名称赋值。 我有一个名为" house1","的变量列表。 house2"等。每个都有一个分配给它的值。例如。 house1 = 1美元,house2 = 50美元等 我想创建类型" building1"," building2"等的变量,并分配每个" house"到相应的#34;建筑物#34;所以,我想最终建筑物1 = 1美元,建筑物2 = 50美元等等。

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

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

2 个答案:

答案 0 :(得分:2)

如果你从这开始 -

( 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" 

答案 1 :(得分:1)

我已在houses中取data.frame及其相应的值。看,如果这适合你,

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