我有一个列表(可以通过unlist()
更改为向量)并且我希望将每个数字递增1。
例如,如果我有x <- list(1, 2, 3, 6, 4)
我希望最终得到一个列表或向量2 3 4 7 5
。
我正在考虑使用apply
或者创建一个循环遍历每个元素的函数,但我觉得这样会很混乱,并且必须有一个更简单的方法来实现它
答案 0 :(得分: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