我只是从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"
如您所见,列名1和2被X5和X6代替。
有人可以告诉我为什么会这样吗,并且有正确的方法来做到这一点而又不会丢失列名吗?
shot弹枪解决方案是将名称保存在辅助向量中,然后在完成对数据帧的处理后将其重新添加。
谢谢
内容:
我创建了一个函数,该函数收集一些数据并将它们作为新行添加到作为参数接收的数据帧中。我创建数据框架,遍历数据源,将data.frame传递给每个函数调用以填充其结果。
character
以及numeric
例如)它是一个更好的主意使用list
功能list("five",6)
。否则它将把一切都理解为角色。