如果我有一个包含两列的列表(名称及其对应的值),如何将其转换为带有两个标签的数据框?
所需的输出:
NAME NUMBER
Andy 50534
Angela 15857
Creed 5004
Darryl 12246
我不知道为什么当我使用as.data.frame(df)时,它给了我这样的水平数据框:
Andy Angela Creed Darryl
50534 15857 5004 12246
答案 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
答案 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