假設我有一個名爲列表像如何從指定列表中刪除元素而無需分配?
somelist <- list(a = 1, b = 5, c = 3)
我知道我可以刪除somelist$b
,比如說,通過分配NULL
它:
somelist$b <- NULL
我想這是好的交互工作,但不非常適合編程工作,因爲它會強制創建其他多餘的變量。
例如,假設foo(42)
計算結果爲類似於somelist
列表的上方,並且我想通過從foo(42)
落下b
元件的一些其它功能bar
產生的列表。在這種情況下,應用上述所示的方法將要求如下:
superfluous.variable <- foo(42)
superfluous.variable$b <- NULL
bar(superfluous.variable)
rm(superfluous.variable)
我正在尋找一種方式來傳遞給bar
修改後的結果從foo
不需要這些多餘的賦值。上述四大行會崩潰,一條線路:
bar(drop.item.from.list(foo(42), item.to.drop = "b"))
是否已經[R有類似上述的假設drop.item.from.list
功能?
你可以嘗試'bar(foo(42)[setdiff(names(somelist),「b」)])' – akrun
不相關,但是'bar'用命名元素接受一個「列表」並執行提取項目的操作?在它的定義中有明確的'bar'參數不是更方便嗎? –