2017-02-27 123 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

相關問題