我正在將一個函數應用於列表的元素。如何在列表中循環並訪問名稱和屬性?
列表有names
,所以從某種意義上說,每個元素都有自己的名字,但是如果lapply
函數已經從列表中提取/分離元素,我該如何訪問它?
一些虛構的數據(如內部功能我在這裏濫用dput
):
r <- list(a=structure(1:4, unit="test"), b='abc')
lapply(r, dput)
我看到這裏是dput
接收列表中的對象,就好像與[[
訪問,剝奪了名的,他們在包含列表中。
所以我想我會放棄使用apply
家族的函數並寫一個循環的想法,但我並不特別喜歡這個想法,它迫使我構造完整函數的結果。
result <- list()
for (name in names(r)) {
print(name)
result[[name]] <- dput(r[[name]])
}
result
任何有洞察力的想法?
是通過數字索引更快訪問比按名稱訪問? – mariotomo
好的,它比循環更具可讀性,避免了額外的'result'變量的需要。所以我按照你的提示,謝謝!這裏只有變化是我更喜歡'lapply(名字(r),函數(名字)dput(r [[名字])))''。我等待接受答案,看看是否有更多想法出現。 – mariotomo
只**很**。我已經用一些'rbenchmark'結果編輯了我的答案 – Andrie