【问题标题】:Convert column into object in R [duplicate]将列转换为R中的对象[重复]
【发布时间】:2018-05-19 02:29:58
【问题描述】:

我想将第一列转换为 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

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

【问题讨论】:

    标签: r


    【解决方案1】:

    首先创建数据框:

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

    然后应用行名:

    > 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
    

    【讨论】:

      【解决方案2】:

      您可以将所需的向量(KPIPill 列)保存在新对象中,并将另一个向量 (namePill) 分配为 names() 用于新对象:

      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 
      

      【讨论】:

        【解决方案3】:

        先使用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

        然后你可以摆脱列 namePill 如果它打扰你

        df=df[2]

        【讨论】:

          猜你喜欢
          • 2020-09-19
          • 1970-01-01
          • 1970-01-01
          • 2011-03-06
          • 1970-01-01
          • 2017-12-01
          • 1970-01-01
          • 2022-01-02
          • 1970-01-01
          相关资源
          最近更新 更多