我有一個資料框串列,它們都有相同的列號。不同之處在于其中一些只有幾行,而另一些則有幾百行。
現在在我的下一步之前,我想過濾這個串列,并且只對串列中長度超過 n 行的資料幀進行子集。
d1 <- data.frame(y1 = c(1, 2, 3), y2 = c(4, 5, 6), y3 = c(5, 5, 6))
d2 <- data.frame(y1 = c(3),y2 = c(4), y3 = c(5))
d3 <- data.frame(y1 = c(1, 2, 3), y2 = c(4, 5, 6), y3 = c(5, 5, 6))
my.list <- list(d1, d2,d3)
資料框 1-3 都有 3 列,但 d2 只有 1 行。如何過濾此串列,以便獲得僅包含長度超過 1 行的資料框(即 d1 和 d3)的 my.list?
uj5u.com熱心網友回復:
試試下面的代碼
my.list[sapply(my.list,nrow)>1]
uj5u.com熱心網友回復:
使用purrr.
library(purrr)
keep(my.list, ~ nrow(.x) > 1)
uj5u.com熱心網友回復:
一個基本的 R 解決方案:
Filter(function(x) nrow(x) > 1, my.list)
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/347432.html
上一篇:特殊串列視圖
下一篇:按鍵均勻分布字典串列
