[英]Defining nested list into a vector with default R packages
myList <- rep(0, 5)
myList <- list('Aa'= c("1","12"), 'Ba'= c("123","321"), 'Ca'= c("444"))
for (x in names(myList)) {
for (j in myList[x]) {
sample <- c(unlist(myList[j]))
} }
sample
在嵌套列表中,想要将此列表转换为带有
“为了”
环形
如果不定义 function,我无法弄清楚如何提取这些值。
sample <- c(unlist(myList[x])
执行“取消列出”仅使用其他代码即可
> sample
NULL
但我想要所有,而这个不是那样工作的。 有没有基础版? 无需快速或简单。 仅带有基本的 R 分发包,带有
“不列出”的替代品
如果有可能。
我需要类似的东西
Aa1 Aa2 Ba1 Ba2 Ca1 "1" "12" "123" "444"
我想我不需要
我的列表 <- 代表(0, 5)
我可能不太明白你的问题,但不
sample <- unlist(myList)
# Aa1 Aa2 Ba1 Ba2 Ca
# "1" "12" "123" "321" "444"
或者
sample <- structure(unlist(myList))
# Aa1 Aa2 Ba1 Ba2 Ca
# "1" "12" "123" "321" "444"
达到你想要的?
如果我理解你的正确,你想在基础unlist
中取消列出而不列出。 你可以这样做:
res <- NULL
for (i in seq(names(myList))) {
nm <- names(myList)[i]
l <- myList[[nm]]
res<- c(res, setNames(l, paste0(nm, seq(l))))
}
res
# Aa1 Aa2 Ba1 Ba2 Ca1
# "1" "12" "123" "321" "444"
查看:
unlist(myList)
# Aa1 Aa2 Ba1 Ba2 Ca
# "1" "12" "123" "321" "444"
我也不得不承认不太了解您要达到的目标,但是如果您想要unlist()
的结果而不明确使用 function 您可以尝试rapply()
- 尽管默认情况下unlist()
正在使用兜帽:
rapply(myList, f = function(x) x)
Aa1 Aa2 Ba1 Ba2 Ca
"1" "12" "123" "321" "444"
不太确定为什么要避免unlist
,但这是flatten_chr
的替代方案。
len <- lengths(myList)
setNames(purrr::flatten_chr(myList),paste0(rep(names(myList),len),sequence(len)))
# Aa1 Aa2 Ba1 Ba2 Ca1
# "1" "12" "123" "321" "444"
如果您可以稍微调整名称,您也可以使用make.unique
:
setNames(purrr::flatten_chr(myList),make.unique(rep(names(myList), len),sep = ""))
# Aa Aa1 Ba Ba1 Ca
# "1" "12" "123" "321" "444"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.