我想创建一个包含两列并且行数未知的空数据框。我想指定列的名称。我运行了以下命令:
dat <- data.frame("id"=numeric(),"nobs"=numeric())
我可以通过运行来测试结果
> str(dat)
'data.frame': 0 obs. of 2 variables:
$ id : num
$ nobs: num
但是当我使用以下命令中的rbind将数据插入到这个数据帧中时,列名也会更改。
for (i in id) {
nobs = nrow(na.omit(read.csv(files_list[i])))
dat = rbind(dat, c(i,nobs))
}
for循环结束后dat的值为:
dat
X3 X243
1 3 243
并且 str 命令显示如下内容
str(dat)
'data.frame': 1 obs. of 2 variables:
$ X3 : num 3
$ X243: num 243
有人能告诉我为什么数据框中的列名会改变吗?
编辑:
我的懒惰解决方案是在将数据绑定到我的数据框后运行以下命令:
names(dat)[1] = "id"
names(dat)[2] = "nobs"
rbind(dat,c(3,243))
- Ben Bolker