簡體   English   中英

如何在r中將數值轉換為二進制(使用閾值)?

[英]How to convert numeric values to binary (using a threshold) in r?

我想知道如何將 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)

一旦我運行測試,第一個似乎是最快的,差別很小。 但這僅適用於大型數據集。
第 5 個ifelse始終較慢, ifelse是小數據集還是大數據集。

數據。

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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM