如下所示反转字符向量列表的有效方法是什么?
输入
lov <- list(v1=c("a", "b"), v2=c("a", "c"), v3=c("a"))
预期的
list(a=c("v1", "v2", "v3"), b=c("v1"), c=c("v2"))
类似于 Revert list structure ,但涉及向量:
最佳答案
我们可以将 list
转换为 data.frame
(使用 stack
或 melt
中的 library(reshape2)
),然后通过 'd1' 中的 'values' 对 'ind' 列进行 split
。
d1 <- stack(lov)
split(as.character(d1$ind), d1$values)
或者如果上面的方法很慢,我们可以通过每个
rep
元素的names
复制(length
)'lov'的list
(lengths
给出每个元素的vector
的length
输出)并通过split
' .split(rep(names(lov), lengths(lov)), unlist(lov))
关于r - 反转 R 中的字符向量列表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35827008/