R 转换二进制数据

R 转换二进制数据,r,binary,R,Binary,我有一个仅由0和1组成的数据帧。因此,对于每一个人,而不是有一个列的因数值(例如,低价格,4个房间),我有 如何转换R中的数据集,以便创建新列(#房间数),并为1(第4列中)的位置指定一个vhigh值? 我有多个EXPEATORY VARIBALE我需要这样做。这21列代表1000多个观测值的6个变量。应该是这样的 PurchaseP. NumberofRooms ... 1. vhigh. 4 2. low. 4 3.

我有一个仅由0和1组成的数据帧。因此,对于每一个人,而不是有一个列的因数值(例如,低价格,4个房间),我有

如何转换R中的数据集,以便创建新列(#房间数),并为1(第4列中)的位置指定一个vhigh值? 我有多个EXPEATORY VARIBALE我需要这样做。这21列代表1000多个观测值的6个变量。应该是这样的

     PurchaseP.   NumberofRooms ...
1.      vhigh.         4
2.      low.           4
3.      vhigh.         1
4.      vhigh.         2
这里只对前2个Epxlanatory变量进行了分析,但基本上是这样重复的,每个解释变量都有3-4个可能的因子值

V1:V4=购买价格,V5:V8=房间数量,V9:V11=楼层,依此类推

在我的脑海里,这样的事情可能会奏效

  • 创建一个if statemt,根据列位置为每个1指定一个值,例如,如果V4中的值=1,则命名为“vhigh”。对每个Vx都这样做
  • 然后组合每个列V1:V4、V5:V8、V9:V11(取决于它是否有3-4个可能的因子/整数值),同时忽略0个值

  • 这是可行的,还是有更简单的方法?如何在R中编写此代码?

    以下是一种适合您的方法。我编写了一个函数,它将把data.frame、表示您感兴趣的变量之一的列(例如,购买价格存储在第1列到第4列中)以及您希望得到的级别名称作为参数。然后,该函数将返回您请求的结果。你需要写出你感兴趣的6个变量

    我将模拟一些数据并说明该方法

    df X1 X2 X3 X4 X5 X6 X7 X8
    #> 1  0  0  0  1  1  0  0  0
    #> 2  1  0  0  0  0  0  0  1
    #> 3  0  0  0  1  1  0  0  0
    #> 4  1  0  0  0  0  0  0  1
    
    我们会说前四列是从v.low到v.high的购买价格,后四列是房间数量(1:4)。我们将编写一个函数,将此信息作为参数并返回结果:

    rangeToCol 2低4
    #>3 vhigh 1
    #>4 V低4
    
         PurchaseP.   NumberofRooms ...
    1.      vhigh.         4
    2.      low.           4
    3.      vhigh.         1
    4.      vhigh.         2