复制数据框中第一行的值并重命名列

时间:2015-10-19 11:20:10

标签: r dataframe

如何从数据框的第一行复制值,用该值重命名列名,然后删除该行?

E.g。

x1  x2  x3  x4  x5
a   b   c   d   e
1   1   1   1   1
2   2   2   2   2
3   3   3   3   3
4   4   4   4   4

a   b   c   d   e
1   1   1   1   1
2   2   2   2   2
3   3   3   3   3
4   4   4   4   4

1 个答案:

答案 0 :(得分:3)

你可以尝试:

#create a vector of the first row values and replace the column names
names(df) <-  unlist(df[1,])
#remove the first row
df <- df[-1,]

输出:

> df
  a b c d e
2 1 1 1 1 1
3 2 2 2 2 2
4 3 3 3 3 3
5 4 4 4 4 4

然后,如果您在使用read.table或类似内容时最终输入了错误的列名,那么可能值得一看。

根据@Roland的评论,如果上述转换后的data.frame由字符第一行的字符类型(非因子)组成的数字,使用以下内容将它们转换为适当的类型:

df[] <- lapply(df, type.convert)