我有data.frame列表需要分類到不同的集合。我發現了一些關於如何操縱data.frame列表的文章。不過,我嘗試了SO中的soluion,並且無法使用ggplot2
生成堆棧欄圖。我已閱讀了關於ggplot2
包的小插曲,學會了如何使用基本功能。點,當我試圖通過其pos.score
列分割列表中的每個data.frame結果將成爲嵌套列表。在R中使用嵌套列表是不期望的。有沒有更簡單高效的方法來更清晰地對列表中的data.frame進行分類?如何在分割data.frame之後爲文件欄創建堆棧條圖(我的意思是,對於我指定的每個data.frame對象)?我如何爲ggplot
函數提供繪圖數據?有沒有任何有效的方法來做到這一點?這是我的第一篇文章,如果在我的問題上犯了錯誤,請提醒我。非常感謝。如何在將嵌套列表轉換爲data.frame列表後獲取堆棧條圖?
模擬數據:
dfList <- list(
hotan = data.frame(begin=seq(1, by=6, len=25), end=seq(4, by=6, len=25), pos.score=sample(30, 25)),
aksu = data.frame(begin=seq(3, by=9, len=30), end=seq(6, by=9, len=30), pos.score=sample(45, 30)),
korla = data.frame(begin=seq(6, by=8, len=45), end=seq(11, by=8, len=45), pos.score=sample(52, 45))
)
羣歸類data.frame
catg <- lapply(myList, function(elm) {
res <- split(elm, ifelse(elm$pos.score >=16, "valid", "invalid"))
})
這樣的方式,我得到了嵌套列表,不能期望生成柱狀圖。我正在尋求更優雅的解決方案,如使用tidyr
包。我對使用這些軟件包頗爲陌生。我怎樣才能做到這一點?請任何想法嗎?
這是擺脫嵌套列表的討厭的方式,有沒有什麼漂亮的解決方案呢?
unlist(lapply(catg, unlist))
編輯
我打算得到data.frame名單如下:
$hotan.valid
$hotan.invalid
$aksu.valid
$aksu.invalid
$korla.valid
$korla.invalid
然後生成文件欄(每個data.frame)堆棧條形圖。我如何輕鬆地做到這一點?這是希望的柱狀圖中的樣機:
我堅持如何產生堆棧條形圖之後我刪除嵌套列表。我怎樣才能達到我想要的文件欄的堆棧欄圖?我怎樣才能更輕鬆地對列表中的每個data.frame進行分類?
stack bar plot的y軸是什麼變量? –