gpt4 book ai didi

r - 合并命名向量列表而不破坏名称

转载 作者:行者123 更新时间:2023-12-02 09:29:36 25 4
gpt4 key购买 nike

如何合并命名 vector 列表?我需要分割一个整数 vector (名称中包含字符),以便与parallel::parSapply()一起使用,并将它们重新组合回去。示例代码:

text <- 1:26
names(text) <- letters
n <- 4
text <- split(text, cut(1:length(text),breaks=n,labels=1:n))
# text <- parSapply(..., text, ...) would go here in the actual code

但是,当我使用 unlist将数据转换回命名 vector 时,这些名称就会混乱:
> unlist(text)
1.a 1.b 1.c 1.d 1.e 1.f 1.g 2.h 2.i 2.j 2.k 2.l 2.m 3.n 3.o 3.p 3.q 3.r 3.s 4.t 4.u 4.v
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
4.w 4.x 4.y 4.z
23 24 25 26

我正在寻找以下结果(除了它应该与任何n值一起工作):
> c(text[[1]],text[[2]],text[[3]],text[[4]])
a b c d e f g h i j k l m n o p q r s t u v w x y z
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26

最佳答案

一种不更改“文本”结构的选择是用vector元素内的对象的unlist(text)更改names(list)的名称。

setNames(unlist(text), unlist(sapply(text, names)))
# a b c d e f g h i j k l m n o p q r s t u v w x y z
# 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26

或者,如果可以删除“文本”对象的名称,可以将“文本”的名称设置为NULL,然后设置 unlist
unlist(setNames(text, NULL))
# a b c d e f g h i j k l m n o p q r s t u v w x y z
# 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26

关于r - 合并命名向量列表而不破坏名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34540452/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com