我如何将一行数据帧转换为标题?

时间:2017-06-05 15:42:26

标签: r dataframe header row shift

输入代码是错误的,数字5109 2 5 5.1 5.2到达标题的位置和原因,我希望在4509的id行是标题。

  

数据[1:3,1:5]

         ID   X1  X2 X3 X4
1    02003KH1 -9  1  2  1
2 02003KH1005 -9  0  1  2
3 02003KH1021 -9  1  1  1

> data[4507:4509,1:5]
           ID    X1 X2 X3 X4
4507 2010XX2178  -9 0 2 2
4508 2010XX2228  -9 0 2 2
4509 id        G_r8 G_r9 G_r5 G_r80

> names(data) <- data[data$ID=='id',]

> data[1:3,1:5]
    5109       2 5 5.1 5.2
1 02003KH1    -9 1   2   1
2 02003KH1005 -9 0   1   2
3 02003KH1021 -9 1   1   1

1 个答案:

答案 0 :(得分:0)

您需要从数据框中删除因子级别,查看主题上的类似帖子(Convert data.frame columns from factors to charactersHow to change factor labels into string in a data frame)。这是一个简短的例子,基于提供的数据来回答问题。

dat = data.frame(ID=c('0200','02003','020034','id','020039'),
           X1=c(-9,-9,-9,'G1',-9),
           X2=c(1,0,1,'G2',0), stringsAsFactors = FALSE)
names(dat) <- dat[dat$ID=='id',]) 
dat <- dat[which(dat$id!='id'),]  # remove the 'id' row