Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在r中将数值转换为二进制(使用阈值)?_R_Dataframe_Binary_Type Conversion_Numeric - Fatal编程技术网

如何在r中将数值转换为二进制(使用阈值)?

如何在r中将数值转换为二进制(使用阈值)?,r,dataframe,binary,type-conversion,numeric,R,Dataframe,Binary,Type Conversion,Numeric,我想知道如何将r中的数据帧值从数字转换为二进制 数据帧: > head(predictionDB) TargetVar X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 1 0 0.00 0.00000000 0 0.0000000 0.00000000 0.06666667 0.066666

我想知道如何将r中的数据帧值从数字转换为二进制

数据帧:

> head(predictionDB)
  TargetVar   X1         X2 X3        X4         X5         X6         X7        X8        X9       X10 X11       X12       X13
1       0 0.00 0.00000000  0 0.0000000 0.00000000 0.06666667 0.06666667 0.0000000 0.0000000 0.0000000 0.0 0.0000000 0.4666667
2       0 0.00 0.00000000  0 0.1212121 0.09090909 0.00000000 0.00000000 0.0000000 0.0000000 0.1818182 0.0 0.2727273 0.1818182
3       0 0.00 0.00000000  0 0.0000000 0.00000000 0.00000000 0.00000000 0.0000000 1.0000000 0.0000000 0.0 0.0000000 0.0000000
4       0 0.25 0.00000000  0 0.0000000 0.00000000 0.25000000 0.00000000 0.0000000 0.0000000 0.0000000 0.0 0.2500000 0.0000000
5       0 0.00 0.09090909  0 0.0000000 0.04545455 0.04545455 0.00000000 0.2727273 0.2272727 0.0000000 0.0 0.0000000 0.3181818
6       1 0.10 0.00000000  0 0.0000000 0.00000000 0.00000000 0.00000000 0.0000000 0.5000000 0.0000000 0.1 0.3000000 0.0000000
目标:

> head(predictionDB)
  TargetVar   X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13
1       0      0  0  0  0  0  1  1  0  0   0   0   0   1
2 ...
非常感谢

您可以执行以下操作:

data.frame(df[1], (df[-1] > 0) * 1)

  TargetVar X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13
1         0  0  0  0  0  0  1  1  0  0   0   0   0   1
2         0  0  0  0  1  1  0  0  0  0   1   0   1   1
3         0  0  0  0  0  0  0  0  0  1   0   0   0   0
4         0  1  0  0  0  0  1  0  0  0   0   0   1   0
5         0  0  1  0  0  1  1  0  1  1   0   0   0   1
6         1  1  0  0  0  0  0  0  0  1   0   1   1   0
这里有5种方法

第一名:

predictionDB[-1] <- +(predictionDB[-1] > 0)
predictionDB[-1] <- (predictionDB[-1] > 0) + 0L
predictionDB[-1] <- (predictionDB[-1] > 0)*1L
predictionDB[-1] <- as.integer(predictionDB[-1] > 0)
predictionDB[-1] <- ifelse(predictionDB[-1] > 0, 1, 0)

尝试使用ifelseThanks mate!还有一个问题:如何排除
TargetVar
-列?我忘了给你澄清一下,谢谢你花时间给我这些提示!
predictionDB <- read.table(text = "
TargetVar   X1         X2 X3        X4         X5         X6         X7        X8        X9       X10 X11       X12       X13
1       0 0.00 0.00000000  0 0.0000000 0.00000000 0.06666667 0.06666667 0.0000000 0.0000000 0.0000000 0.0 0.0000000 0.4666667
2       0 0.00 0.00000000  0 0.1212121 0.09090909 0.00000000 0.00000000 0.0000000 0.0000000 0.1818182 0.0 0.2727273 0.1818182
3       0 0.00 0.00000000  0 0.0000000 0.00000000 0.00000000 0.00000000 0.0000000 1.0000000 0.0000000 0.0 0.0000000 0.0000000
4       0 0.25 0.00000000  0 0.0000000 0.00000000 0.25000000 0.00000000 0.0000000 0.0000000 0.0000000 0.0 0.2500000 0.0000000
5       0 0.00 0.09090909  0 0.0000000 0.04545455 0.04545455 0.00000000 0.2727273 0.2272727 0.0000000 0.0 0.0000000 0.3181818
6       1 0.10 0.00000000  0 0.0000000 0.00000000 0.00000000 0.00000000 0.0000000 0.5000000 0.0000000 0.1 0.3000000 0.0000000
", header = TRUE)