【问题标题】:How to convert a binary data frame to a vector?如何将二进制数据帧转换为向量?
【发布时间】:2020-10-13 19:23:09
【问题描述】:

假设我有一个像这样的数据框

dat<-data.frame('0'=c(1,1,0,0,0,0,0,0),
                '1'=c(0,0,1,0,1,0,0,0),
                '2'=c(0,0,0,1,0,0,1,1),
                '3'=c(0,0,0,0,0,1,0,0))
dat
  X0 X1 X2 X3
1  1  0  0  0
2  1  0  0  0
3  0  1  0  0
4  0  0  1  0
5  0  1  0  0
6  0  0  0  1
7  0  0  1  0
8  0  0  1  0

我想将它转换为像1,1,2,3,2,4,3,3 这样的向量,其中数字对应于单位1 的列。例如,4 表示第 6 行的第 4 列是 1。

【问题讨论】:

    标签: r


    【解决方案1】:

    使用

    max.col(dat)
    # [1] 1 1 2 3 2 4 3 3
    

    【讨论】:

      【解决方案2】:

      base R中,我们可以使用apply

      apply(dat == 1, 1, which)
      #[1] 1 1 2 3 2 4 3 3
      

      【讨论】:

        猜你喜欢
        • 2012-08-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-09-27
        • 2017-01-31
        • 2011-08-10
        • 2019-05-02
        • 1970-01-01
        相关资源
        最近更新 更多