簡體   English   中英

將列表轉換為 R 中長度相同的嵌套命名向量

[英]Convert a list into a nested named vector with the same length in R

假設列表x

x <- list(a = c(1, 2, 3), b = c(4, 5))

我想取回一個具有相同長度的命名向量,看起來像

c(a = c(1, 2, 3), b = c(4, 5))

我的第一個想法是使用 for 循環

  out <- vector(typeof(x), length(x))
  x_names <- names(x)
  for (i in seq_along(x)) {
    out[i] <- x[[i]]
  }
  
  names(out) <- c(x_names)

有沒有辦法在沒有 for 循環的情況下做到這一點?

如何將do.call()c()一起使用?

do.call(c,x)

或者

unlist(x)

Output

a1 a2 a3 b1 b2 
 1  2  3  4  5 
  • 只需使用
lapply(1:length(x) , \(i) unlist(x[i]))

#> [[1]]
#> a1 a2 a3 
#>  1  2  3 
#> 
#> [[2]]
#> b1 b2 
#>  4  5 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM