2015-04-06 122 views
0

我以拆分由多個列表:初始化多個數據幀

mylists <- split (df, interaction(df$age, df$nation) 

從中,我們得到了1000名名單,mylists[[1]]mylists[[2]] ... mylists[[1000]]

我們怎樣才能使(對應)1000個數據幀,它包含1000個列表的信息? (當我試圖通過在循環中將列表轉換爲數據幀來實現時,它不起作用,因爲我們需要初始化1000個數據幀的向量。)

回答

1

如果我完全理解您的問題,我不會看不到你需要做任何事情,因爲你的列表中有什麼是已經是 dataframes。讓我們使用我們稍微修改的iris數據框做一點示範。

iris2 <- iris 
iris2$Species2 <- rev(iris2$Species) 
mylists <- split(iris2, interaction(iris2$Species, iris2$Species2)) 

length(mylists) 

# [1] 9 

sapply(mylists, class) 

#  setosa.setosa  versicolor.setosa  virginica.setosa 
#  "data.frame"   "data.frame"   "data.frame" 
# setosa.versicolor versicolor.versicolor virginica.versicolor 
#  "data.frame"   "data.frame"   "data.frame" 
# setosa.virginica versicolor.virginica virginica.virginica 
#  "data.frame"   "data.frame"   "data.frame" 

您可以從自己的號碼或者從他們的名字提取那些dataframes:

head(mylists[[3]]) 

#  Sepal.Length Sepal.Width Petal.Length Petal.Width Species Species2 
# 101   6.3   3.3   6.0   2.5 virginica setosa 
# 102   5.8   2.7   5.1   1.9 virginica setosa 
# 103   7.1   3.0   5.9   2.1 virginica setosa 
# 104   6.3   2.9   5.6   1.8 virginica setosa 
# 105   6.5   3.0   5.8   2.2 virginica setosa 
# 106   7.6   3.0   6.6   2.1 virginica setosa 

names(mylists) 

# [1] "setosa.setosa"   "versicolor.setosa"  "virginica.setosa"  
# [4] "setosa.versicolor"  "versicolor.versicolor" "virginica.versicolor" 
# [7] "setosa.virginica"  "versicolor.virginica" "virginica.virginica" 

head(mylists[["virginica.setosa"]]) 

#  Sepal.Length Sepal.Width Petal.Length Petal.Width Species Species2 
# 101   6.3   3.3   6.0   2.5 virginica setosa 
# 102   5.8   2.7   5.1   1.9 virginica setosa 
# 103   7.1   3.0   5.9   2.1 virginica setosa 
# 104   6.3   2.9   5.6   1.8 virginica setosa 
# 105   6.5   3.0   5.8   2.2 virginica setosa 
# 106   7.6   3.0   6.6   2.1 virginica setosa 
+0

我們必須基於兩個功能拆分....你可以採取一些其他的例子。
.mylists < - split(df,interaction(df $ age,rev(df $ age),df $ nation,rev(df $ age)) – 2015-04-06 16:22:20

+0

我想它會做的是爲每個項目製作更復雜的名稱。 。我不確定你在這一切中的下一步是什麼......也許你想刪除空的數據集...? – 2015-04-06 17:12:07

+0

虹膜不是正確的例子,因爲它沒有兩個特徵(分類)。你可以舉另一個例子在那裏我可以分裂兩個功能 – 2015-04-07 11:04:34