如何从数据框的第一行复制值,用该值重命名列名,然后删除该行?
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
答案 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)