這可能是一個非常簡單的問題。我有一個數據幀列表(df1,df2 .... dfn),即列表中的每個元素都是一個數據幀。所以基本上,列表是這樣創建的:取消列表中的數據框
mylist = list(df1, df2,...., dfn)
但我怎麼做相反的,也就是不公開,使DF1,DF2等在工作區中獨立存在?
這可能是一個非常簡單的問題。我有一個數據幀列表(df1,df2 .... dfn),即列表中的每個元素都是一個數據幀。所以基本上,列表是這樣創建的:取消列表中的數據框
mylist = list(df1, df2,...., dfn)
但我怎麼做相反的,也就是不公開,使DF1,DF2等在工作區中獨立存在?
使用list2env
它是專門爲此設計:
從命名列表X,創建環境包含所有列表 組件作爲對象,或從x中的「多指派」轉換爲預先存在的 環境。
所以在這裏:
list2env(mylist ,.GlobalEnv)
+1我不知道這個函數存在。 –
太棒了!非常感謝。 – user702432
你可以簡單地用一個for循環與assign
功能一樣,沿着:
# Sample data
df.list <- list(data.frame(x = 1:3, y = c(10, 20, 30)),
data.frame(x = 4:6, y = c(40, 50, 60)),
data.frame(x = 7:9, y = c(70, 80, 90)))
# Write out single data frames
for (i in seq(df.list))
assign(paste0("df", i), df.list[[i]])
真棒解決方案,當你有一個未命名的列表。 – NoThanks
真高雅! –
感謝。你是一個心靈感應器嗎? – user702432
問題*應該*,爲什麼你會*要*做到這一點。如果你把所有的df放在一個可愛的列表中,幾乎沒有任何理由需要將它們製作成單獨的對象。你可以將它們作爲你列表的元素。 –
同意Simon。如果你想打電話給他們的名字,最好在名單上列出他們 - 例如'myList = list(df1 = data.frame(...),df2 = data.frame(...),...)'並用'myList [['df1']' – geotheory