R 在不损坏名称的情况下组合命名向量列表

R 在不损坏名称的情况下组合命名向量列表,r,R,如何组合命名向量列表?我需要拆分一个整数向量(名称为字符),以便与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

如何组合命名向量列表?我需要拆分一个整数向量(名称为字符),以便与
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
我要寻找的是以下结果(除了它应该与任何值n一起工作):


在不改变“文本”结构的情况下,一个选项是用
列表
元素中对象的
名称更改
向量的名称(
unlist(text)

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 
或者,如果可以删除“text”对象的名称,请将“text”的名称设置为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 

您可以先删除列表元素名称,这样就不会出现复合命名

> names(text) <- NULL
> do.call(c, text)
 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

或者正如@RichardScriven在评论中指出的那样,您可以按如下方式进行操作,而无需删除源变量中的名称:
do.call(“c”,c(text,use.names=FALSE))

do.call(“c”,c(text,use.names=FALSE))
对于单个调用,保持
text
不变。
unlist(unname(text))
是一个好方法。或者
Reduce(c,text)
也可以。@RichardScriven两者都是不错的选择。你应该提供这一点作为答案。
unname(…)
似乎比
setNames(…,NULL)
@thelatemail是的,但RichardScriven已经提到了它。
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 
> names(text) <- NULL
> do.call(c, text)
 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
> unlist(text)
 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