使用来自另一个列表的名称和值在 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
,您得到描述:“获取或设置对象名称的函数。”
原始列表中 data.frame
的名称将由此提取,并且 lapply
保留原始列表的名称。
选项tidyverse
library(purrr)
map(l, names)
-输出
#$a
#[1] "foo" "bar"
#$b
#[1] "foo" "bar"
所以问题的表述非常糟糕,但我想要实现的是:我有以下列表:
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
,您得到描述:“获取或设置对象名称的函数。”
原始列表中 data.frame
的名称将由此提取,并且 lapply
保留原始列表的名称。
选项tidyverse
library(purrr)
map(l, names)
-输出
#$a
#[1] "foo" "bar"
#$b
#[1] "foo" "bar"