2015-10-20 38 views
0

我有一個列表改變載體或列表中的每個元素(即,可以通過unlist()改變爲向量),我想通過1由相同數量的

例如遞增每一個數,如果我有x <- list(1, 2, 3, 6, 4) 我想結束一個列表或向量將是2 3 4 7 5

我想使用apply或使得通過每一個元素循環功能,但我覺得這會是麻煩而且必須做到這一點

回答

4

一個更簡單的方法我真的不知道爲什麼這混亂。您可以使用lapply()將1添加到列表的每個元素。在R中,這是在列表上應用函數的標準方法。

x <- list(1, 2, 3, 6, 4) 
lapply(x, "+", 1) ## for a list result; unlist(x) + 1 for atomic result 

或者,如果你正在進入國際規範高爾夫錦標賽,你可以使用

Map("+", x, 1) 

或者你可以使用一個for()循環

for(i in seq_along(x)) x[[i]] <- x[[i]] + 1 

或者,如果您有未列出的名單,你可以用x作爲它的骨架來重置它。

relist(unlist(x) + 1, x) ## same as as.list(unlist(x) + 1) here 
+1

def eagle there –

+0

他會喜歡他的下一個鏡頭。 –

+1

很好的使用'+'和'lapply' –