所以我有一個列表,其中的每個元素都是數字向量。每個數字的範圍是從0到1,我只對那些大於.95的數據感興趣,但我必須保持它們在向量上的位置,並且我需要將所有其他數字作爲他們相對於彼此的位置。替換不帶循環的多級列表的元素
l1 = list(c(runif(20)),c(runif(21)),c(runif(22)),c(runif(19)))
所以我試圖設置爲低於0.95等於0的所有號碼,使用lapply像這樣:
l1 = lapply(l1, function(x){x[x<.95]=0})
但這只是返回相等數量的元件作爲輸入列表的列表(如人們會期望),但每個元素只是零。
,所以我有嘗試過for循環,像這樣:
for(i in 1:length(l1))
{
l1[[i]][l1[[i]]<.95]=0
}
和工作。每個元素的長度與輸入向量相同,只包含0,數字大於0.95
有人可以解釋爲什麼lapply不起作用。我寧願不必使用for循環,因爲我認爲它們比較慢,而我正在處理的真實數據集要大得多。
一如往常,
所有幫助表示讚賞,
乾杯,
戴維
輝煌。感謝James和nograpes !!! – 2012-03-06 15:21:39