R语言 里面怎么把一个数转换为二进制的0,1串,比如5=101,

Python07

R语言 里面怎么把一个数转换为二进制的0,1串,比如5=101,,第1张

先说简单的,有一个叫strtoi()的函数

# 如果直接写

> strtoi("111")

[1] 111

# 如果加base = 2,就是告诉R要换成十进制

> strtoi("111", base = 2)

[1] 7

反过来就有些麻烦,R自带intToBits()函数,但效果不好,要自己调整

> intToBits(12)

[1] 00 00 01 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 

[25] 00 00 00 00 00 00 00 00

12换成二进制是1100,上面答案实际上是反过来读,三四位是11,其余都是0.

paste(rev(as.integer(intToBits(12))), collapse="")

[1] "00000000000000000000000000001100"

你的文件是file.csv

>data<-read.csv("file.csv",header=T)

比如说第2列是性别 1是男 0是女

那么你可以强制转换,也可以用函数

>sex<-factor(data[,2]) 或者 >sex<-as.factor(data[,2])

如此sex就变成了因子型的

你可以把0,1改成female ,male

>levels(sex)<-c("female","male")

最后带回去

>data[,2]<-sex