我刚开始使用 R,遇到了一个奇怪的行为: 当在空数据框中插入第一行时,原始列名会丢失。
例如:
a<-data.frame(one = numeric(0), two = numeric(0))
a
#[1] one two
#<0 rows> (or 0-length row.names)
names(a)
#[1] "one" "two"
a<-rbind(a, c(5,6))
a
# X5 X6
#1 5 6
names(a)
#[1] "X5" "X6"
如您所见,列名 一和 二被 X5和 X6替换。
谁能告诉我为什么会发生这种情况,有没有正确的方法可以做到这一点,而不丢失列名称?
一种鸟枪式的解决方案是将名称保存在一个辅助向量中,然后在完成数据框架的工作后再将它们添加回来。
谢谢
背景:
我创建了一个函数,它收集一些数据,并将它们作为一个新行添加到作为参数接收的数据帧中。 我创建数据框架,遍历我的数据源,将 data.frame 传递给每个函数调用以填充其结果。