一种产生data.frame
并能够在一行中执行此操作的方法是强制所有传递给cbind
data.frame 的矩阵/数据帧,同时使用设置列名属性setNames
:
a = matrix(rnorm(10), ncol = 2)
b = matrix(runif(10), ncol = 2)
cbind(setNames(data.frame(a), c('n1', 'n2')),
setNames(data.frame(b), c('u1', 'u2')))
产生:
n1 n2 u1 u2
1 -0.2731750 0.5030773 0.01538194 0.3775269
2 0.5177542 0.6550924 0.04871646 0.4683186
3 -1.1419802 1.0896945 0.57212043 0.9317578
4 0.6965895 1.6973815 0.36124709 0.2882133
5 0.9062591 1.0625280 0.28034347 0.7517128
不幸的是,没有setColNames
类似的功能setNames
但是,对于在列名之后返回矩阵的数据框,没有什么可以阻止您调整代码setNames
以生成:
setColNames <- function (object = nm, nm) {
colnames(object) <- nm
object
}
请参阅此答案,该magrittr
包包含此功能。