【发布时间】:2017-03-14 13:58:59
【问题描述】:
给定一个列表 x:
$a
[1] 1 2 3 4 5 6
$b
[1] 10 20 30 40 50
$c
[1] 100 200 300 400 500
我想构建一个数据框,其中包含一列包含以下值:
1 10 100
即列的元素来自x$a、x$b和x$c中的第一个元素。
我想知道构建这个专栏最有效的方法是什么?
【问题讨论】:
给定一个列表 x:
$a
[1] 1 2 3 4 5 6
$b
[1] 10 20 30 40 50
$c
[1] 100 200 300 400 500
我想构建一个数据框,其中包含一列包含以下值:
1 10 100
即列的元素来自x$a、x$b和x$c中的第一个元素。
我想知道构建这个专栏最有效的方法是什么?
【问题讨论】:
我们可以使用[ 来提取第一个元素
d1 <- data.frame(Col1 = unname(sapply(x, `[`, 1)))
d1
# Col1
#1 1
#2 10
#3 100
我们也可以
data.frame(Col1 = do.call(cbind, x)[1,])
【讨论】:
你也可以试试这个:
data.frame(Col1=do.call(rbind, x)[,1])
Col1
a 1
b 10
c 100
【讨论】: