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

リスト内の古いデータフレーム 'L'と '名(L)<入れ - NewDataFrameNameList $ DF_Names' – jogo

+0

残念ながら、それは動作しませんでしたが。 – RanonKahn

+0

? 'ライブラリ(運勢); fortune(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

関連する問題