簡體   English   中英

在 R 中使用來自另一個列表的名稱和值創建列表

[英]Create list in R with the names and values coming from another list

所以這個問題的表述非常糟糕,但我想要實現的是:我有以下列表:

list(a = data.frame(foo=1:10, bar=11:20), b = data.frame(foo=1:10, bar=11:20))

我現在要創建的是另一個列表,其內容為:

(list(a=c("foo", "bar"), b=c("foo", "bar")))
$a
[1] "foo" "bar"

$b
[1] "foo" "bar"

但顯然我不想硬編碼它。 我想有一些或多或少簡單的答案,但我現在想不出任何答案。 在 R 中,命名列表和為對象分配名稱仍然讓我很困惑。 所以任何幫助將不勝感激:)

假設您的原始列表是“l”,您可以執行以下操作:

lapply(l, names)
# $a
# [1] "foo" "bar"
# 
# $b
# [1] "foo" "bar"

?names中,您得到描述:“獲取或設置 object 名稱的函數。”

原始列表中的data.frame的名稱由此提取,並且lapply保留原始列表的名稱。

tidyverse的一個選項

library(purrr)
map(l, names)

-輸出

#$a
#[1] "foo" "bar"

#$b
#[1] "foo" "bar"

暫無
暫無

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

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