将列表转换为数据框

时间:2018-10-12 02:14:27

标签: r

如果我有一个包含两列的列表(名称及其对应的值),如何将其转换为带有两个标签的数据框?

所需的输出:

NAME   NUMBER
Andy   50534

Angela 15857

Creed   5004

Darryl  12246

我不知道为什么当我使用as.data.frame(df)时,它给了我这样的水平数据框:

Andy Angela Creed Darryl
50534 15857 5004  12246

2 个答案:

答案 0 :(得分:1)

一种方法是使用cbind将列表转换为数据框:

lst <- list(NAME=c("Andy", "Angela", "Creed", "Darryl"),
            NUMBER=c(50534, 15857, 5004, 12246))
data.frame(do.call("cbind",lst))

    NAME NUMBER
1   Andy  50534
2 Angela  15857
3  Creed   5004
4 Darryl  12246

Demo

答案 1 :(得分:0)

准备工作

{{ csrf_field() }}

最简单的解决方案

lst <- list(NAME=c("Andy", "Angela", "Creed", "Darryl"),
            NUMBER=c(50534, 15857, 5004, 12246))

使用以下事实:数据帧在其核心中是列向量的列表。 因此,对列表进行简单的df <- as.data.frame(lst, stringsAsFactors=FALSE) 调用将自动完成许多正确的事情。 在创建数据框时,我总是应用as.data.frame,因为我不希望将包含字符串的列变成因数列,就像它在基数R中是默认列一样。

结果

stringsAsFactors=FALSE