2017-02-27 33 views
1

我有一个数据框列中的名称列表,如下所示。如何使用列中的值重命名现有数据框?如何使用另一个数据框中的列值来重命名R中的数据框?

# New Data Frame Name List 

NewDataFrameNameList 

    DF_Names  
1 New_DF_Name1 
2 New_DF_Name2 
3 New_DF_Name2 

现有数据帧

old_DF_Name1 
old_DF_Name2 
old_DF_Name3 

重命名现有数据帧。我尝试了分配功能,但它不起作用。

assign(old_DF_Name1, NewDataFrameNameList[1,1]) 
+1

将旧dataframes列表中的'L'和'名字(L)< - NewDataFrameNameList $ DF_Names' – jogo

+0

不幸的是,它没有工作。 – RanonKahn

+0

? '库(时运);财富(324)' – jogo

回答

1
# data frame with names 
df1 <- data.frame(a = letters[1:2], stringsAsFactors = FALSE) 

# data frames whose names have to be renamed 
df2 <- data.frame(i = 1:5, j = 6:10) 
df3 <- data.frame(i = 11:15, j = 16:20) 
ls() 
# [1] "df1" "df2" "df3" 

# get values of data frame and assign it to names in x using mapply 
# .GlobalEnv puts the newly created data frames in global environment. 
invisible(mapply(function(x, y) assign(x, y, envir = .GlobalEnv), 
        x = c(df1$a), 
        y = mget(c("df2", "df3")))) 

ls() 
# [1] "a" "b" "df1" "df2" "df3" 

rm(list = c("df1", "df2", "df3")) 
ls() 
# [1] "a" "b" 

a 
# i j 
# 1 1 6 
# 2 2 7 
# 3 3 8 
# 4 4 9 
# 5 5 10 

b 
# i j 
# 1 11 16 
# 2 12 17 
# 3 13 18 
# 4 14 19 
# 5 15 20 
+0

亲爱的@Sathish,谢谢你的一个有趣的解决方案。我非常感谢你的迅速和全面的回应。 – RanonKahn

相关问题