如何将一列添加到 Rdata.frame
作为新的第一列,以便所有其他列移动一列?
喜欢:
a|b|c --> new|a|b|c
我需要这样做,因为我希望它row.names
成为一个离散的列。这是必需的,因为该write.arff
函数将 adata.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
row.names = NULL
您可以通过在cbind
步骤中设置来摆脱它。由于您是cbind
ing data.frames
,因此您还可以在必要时将其他参数传递给data.frame
(例如,stringsAsFactors = FALSE
如果您不希望 "rn" 列成为 a factor
)。
cbind(rn = rownames(df), df, row.names = NULL)
# rn A B
# 1 row1 1 3
# 2 row2 2 4