2
如何將一列添加到R data.frame
作爲新的第一列,以便所有其他列都移動一列?在數據框的開頭插入列
像:
a|b|c --> new|a|b|c
我需要這樣做,因爲我希望row.names
成爲離散列。這是必需的,因爲write.arff
函數採用data.frame
作爲輸入,但在寫入文件時不保留名稱。
如何將一列添加到R data.frame
作爲新的第一列,以便所有其他列都移動一列?在數據框的開頭插入列
像:
a|b|c --> new|a|b|c
我需要這樣做,因爲我希望row.names
成爲離散列。這是必需的,因爲write.arff
函數採用data.frame
作爲輸入,但在寫入文件時不保留名稱。
這在評論中已經回答了,但要更清楚地表明有一個答案,這裏有一個小例子:
首先,一些樣本數據:
(df <- data.frame(A = 1:2, B = 3:4, row.names = c("row1", "row2")))
# A B
# row1 1 3
# row2 2 4
從意見的建議。請注意,原始的row.names
仍然是數據的一部分。
cbind(rn = rownames(df), df)
# rn A B
# row1 row1 1 3
# row2 row2 2 4
您可以通過在cbind
步驟設置row.names = NULL
擺脫這一點。由於您是cbind
ing data.frames
,如果需要,您還可以將其他參數傳遞給data.frame
(如stringsAsFactors = FALSE
,如果您不希望「rn」列爲factor
)。
cbind(rn = rownames(df), df, row.names = NULL)
# rn A B
# 1 row1 1 3
# 2 row2 2 4
'cbind(rownames(df),df)'? – BrodieG
謝謝。我現在意識到我問了一些非常基本的東西,但不知何故,我沒有找到答案。 – aldorado
在側面說明,你是出口使用'Weka'?在Weka中很少有這樣的功能,在R中無法完成而不需要間歇步驟 –