将正数值转换为因子R.

时间:2016-07-25 13:33:56

标签: r dplyr

我的数据框的一个子集是

> IntensityIndex
  Individual  X1980LLTper X1981LLTper X1982LLTper
       1      4789.337905   15.012398   19.099139
    1201        32.470518    0.000000   27.880136
    2231         0.000000    0.000000    0.000000
    3331        20.200198  964.691700    4.367191
    8545        40.367227   11.844057    2.227061
   10031        10.425561   68.817743   29.815259
   13543        65.883538  364.601077   16.630508
   15843         7.161902    0.000000 1909.549849
   23349     18704.452730    0.000000    0.000000
   24901         3.347454    0.000000   72.299520
   25901       822.430973  414.693913 3265.319947
   50439        15.058856   11.638729    0.000000

我需要将所有值> 0转换为1的数值变量。所以我想实现:

Individual  X1980LLTper X1981LLTper X1982LLTper
       1      1            1           1
    1201      1       0.000000         1
    2231  0.000000    0.000000    0.000000
  etc.

然后我将这些作为虚拟变量与factor()函数一起用于进一步的分析。

请记住,此数据是1980年至2012年期间较大数据集的一部分。例如:

$X1980LLTper, $X1981LLTper, ... $X2012LLTper 

以及一系列个体变量(收入,年龄,性别等)

如果任何解决方案包含一个简洁的代码,我将非常感激,这些代码允许我将生成的虚拟变量矩阵附加到我的大数据集中。

1 个答案:

答案 0 :(得分:0)

我已经在评论中回答了这个问题,但你能否接受这个答案,以便其他人知道有答案?这个Meta post中的某些人建议您在评论中发布您的解决方案作为答案。

您可以通过以下方式执行此操作: IntensityIndex[,-1] <- ifelse(IntensityIndex[,-1] > 0, 1, 0)

或者您可以使用@Sotos IntensityIndex[,-1][IntensityIndex[,-1] > 0] <- 1

的建议