我運行了一個循環,它遍歷並創建了一堆名稱全部以「results_」開頭並且長度不同的對象,其中很多都是0.在R環境中刪除不符合標準的對象
爲了使物體更容易的這個名單來處理,我想刪除其nrow
等於0。我已經試過下面各種提供類似的問題這一個解決方案中的任何物體,但沒有工作了我特殊案例。我究竟做錯了什麼?
Attempt 1: rm(list=ls(all=TRUE)[sapply(mget(ls(all=TRUE)), function(x) nrow(x) == 0)])
Attempt 2: rm(list=ls()[!sapply(mget(ls(),.GlobalEnv), function(x) { nrow(x) == 0 })])
rm(list=
Filter(
Negate(is.na), # filter entries corresponding to objects that don't meet function criteria
sapply(
ls(pattern="^results_"), # only objects that start with "results_"
function(x) if(nrow(x) == 0) x else NA # return names of objects of nrow length 0
)))
嘗試'RM(名單= LS(模式= 「效果_」)[sapply(LS(模式= 「results_」),功能(X)NROW(獲得(X)) )== 0])' –
@db謝謝你的工作!如果您將其作爲答案提交,我會檢查它。另外,我不清楚爲什麼'NROW'在'nrow'沒有的情況下工作。 – Phil
這是一個典型的[X/Y的問題(https://meta.stackexchange.com/questions/66377/what-is-the-xy-problem):真正的問題是,你不應該建立這樣的元素首先!相反,在列表和data.frames中組織數據。 –