2
如下所示,反轉字符向量列表的有效方法是什麼?倒置R中的字符向量列表
輸入
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,但涉及的載體:
如下所示,反轉字符向量列表的有效方法是什麼?倒置R中的字符向量列表
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
(使用library(reshape2)
stack
或melt
)和然後split
'ind'列由'values'在'd1'中。
d1 <- stack(lov)
split(as.character(d1$ind), d1$values)
或者,如果上述的方法是緩慢的,我們可以複製(rep
)由每個list
元件的length
「LOV」的names
(lengths
給出的各元素的length
的vector
輸出) 'lov'和split
它由unlist
。
split(rep(names(lov), lengths(lov)), unlist(lov))
第二個是可取的,因爲它不涉及添加包 – cannin
@cannin第一個也不需要任何包。我指的是來自'reshape2'的'melt'。否則,'stack'是一個'base R'函數。 – akrun