1

我可以使用 do.call 函数将列表转换为 data.frame:

z=list(c(1:3),c(5:7),c(7:9))
x=as.data.frame(do.call(rbind,z))
names(x)=c("one","two","three")
x

##   one two three
## 1   1   2     3
## 2   5   6     7
## 3   7   8     9

我想让它更简洁,将两个语句合并为一个语句,可以吗?

x=as.data.frame(do.call(rbind,z))  
names(x)=c("one","two","three")
4

2 回答 2

7

setNames是你想要的。它在stats应该加载的包中R

setNames(as.data.frame(do.call(rbind,z)), c('a','b','c'))

##   a b c
## 1 1 2 3
## 2 5 6 7
## 3 7 8 9
于 2012-08-29T23:44:52.160 回答
3

另一种方法是structure()函数,这是基本的,更通用的:

structure(as.data.frame(do.call(rbind,z)), names=c('a','b','c'))
于 2012-08-30T00:10:33.220 回答