我有一个list的character vectorS:
my.list <- list(e1 = c("a","b","c","k"),e2 = c("b","d","e"),e3 = c("t","d","g","a","f"))
Run Code Online (Sandbox Code Playgroud)
我正在寻找一个function对于任何character横跨出现不止一次list的vectorS(在每vector一个character只能出现一次),将只保留第一次亮相.
因此,此示例的结果列表将是:
res.list <- list(e1 = c("a","b","c","k"),e2 = c("d","e"),e3 = c("t","g","f"))
Run Code Online (Sandbox Code Playgroud)
注意,可以消除整个vector中的list整数,使得结果list中的元素数量不一定必须等于输入list.
我们可以unlist的list,得到一个合理的list使用duplicated和提取"my.list"基于逻辑索引的元素
un <- unlist(my.list)
res <- Map(`[`, my.list, relist(!duplicated(un), skeleton = my.list))
identical(res, res.list)
#[1] TRUE
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1730 次 |
| 最近记录: |