将列转换为R中的对象

时间:2017-12-05 12:17:36

标签: r

我想将第一列转换为R中的对象,如果输入如下:

#name of df - KPIF
    namePill KPIPill
1: pill_tech     0.3
2:  pill_EUX     0.2
3:  pill_Bus     0.3

输出应该如下:

#name of df - KPIF
           KPIPill
pill_tech    0.3
pill_EUX     0.2
pill_Bus     0.3

有人可以帮忙吗? 问候, 亚历山德拉

3 个答案:

答案 0 :(得分:1)

首先创建数据框:

KPIF <- data.frame(namePill=c('pill_tech','pill_EUX','pill_Bus'),
                   KPIPill=c(0.3,0.2,0.3))
KPIF

然后应用rownames:

> rownames(KPIF) <- KPIF[,'namePill']
> KPIF
           namePill KPIPill
pill_tech pill_tech     0.3
pill_EUX   pill_EUX     0.2
pill_Bus   pill_Bus     0.3

然后删除不必要的列,建议您的数据框是一个包含更多列的更大的数据框:

> KPIF <- KPIF[!(colnames(KPIF) %in% 'namePill')]
> KPIF
          KPIPill
pill_tech     0.3
pill_EUX      0.2
pill_Bus      0.3

答案 1 :(得分:0)

您可以将所需的矢量(KPIPill列)保存在新对象中,并为新对象指定另一个矢量(namePillnames()

KPIF <- read.table(text = "    namePill KPIPill
1: pill_tech     0.3
                   2:  pill_EUX     0.2
                   3:  pill_Bus     0.3", header = TRUE)


KPIF_named <- KPIF$KPIPill
names(KPIF_named) <- KPIF$namePill

> KPIF_named
pill_tech  pill_EUX  pill_Bus 
      0.3       0.2       0.3 

答案 2 :(得分:0)

先使用rownames()然后你可以摆脱第一列:

我假设你做了这样的df:

df=as.data.frame(matrix(c('pill_tech','pill_EUX','pill_Bus',0.3,0.2,0.3),3,2))

否则您只需将其转换为as.data.frame(df)

的数据框即可

然后将列namePill分配给rownames()

rownames(df)=df$namePill

然后如果困扰你就可以摆脱列名称

df=df[2]