我剛剛以R開頭,並遇到一個奇怪的行爲:將第一行插入空數據框時,原始列名會丟失。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傳遞給每個函數調用以填充其結果。
我認爲在你的代碼中的'了''裏面是rbind'忽略,所以它其實就相當於一個'< - data.frame(一個= 5,兩個= 6)'。但我可能是錯的。 – juba
+1我通常使用這種方法 - 請注意,您可以簡單地將'a'初始化爲空向量:'a < - c()'。 –
@juba,可能是這種情況,因爲data.frame'a'是空的。 –