将名称元素按名称替换为另一个列表

时间:2017-02-13 15:08:01

标签: r list lapply

我有以下字符串列表:

l.1 = list(a = "aaa", b = "111", c = "a1a", d = "222")

我想将仅使用数字的字符串转换为数字条目。为此,我使用从另一个问题here导入的函数:

check.digits <- function(x){ grepl('^(\\d+)$' , x) }

当应用于l.1时,它返回仅包含数字的字符串:

l.2 = lapply(l.1[check.digits(l.1)], as.numeric)

> l.2
$b
[1] 111

$d
[1] 222

如何将l.1中的元素替换为l.2中的元素?

期望的结果将是:

> l.1
$a
[1] "aaa"

$b
[1] 111

$c
[1] "a1a"

$d
[1] 222

1 个答案:

答案 0 :(得分:2)

我们可以使用

l.1[names(l.2)] <- l.2