R 变量的逻辑转换

除了对数变换 和 平方根变换以外,逻辑转换也经常使用。

有时候我们并不关心具体的数值,只关心是否使用,是否存在,0还是1,true还是false等二元数据,所以要对变量进行逻辑转换。

# 读取数据
pf <- read.csv('pseudo_facebook.tsv', sep = '\t')

> summary(pf$mobile_likes)
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
    0.0     0.0     4.0   106.1    46.0 25111.0 
> summary(pf$mobile_likes > 0)
   Mode   FALSE    TRUE 
logical   35056   63947


## 添加一列表示:是否在手机端登陆
pf$mobile_check_in <- NA
# 大于0,则设置为1;否则设置为0
pf$mobile_check_in <- ifelse(pf$mobile_likes > 0, 1, 0)

> str(pf$mobile_check_in)
 num [1:99003] 0 0 0 0 0 0 0 0 0 0 ...
> summary(pf$mobile_check_in)
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
 0.0000  0.0000  1.0000  0.6459  1.0000  1.0000 


# 将num类型转化为factor类型
pf$mobile_check_in <- factor(pf$mobile_check_in)

> str(pf$mobile_check_in)
 Factor w/ 2 levels "0","1": 1 1 1 1 1 1 1 1 1 1 ...
> summary(pf$mobile_check_in)
    0     1 
35056 63947

# 使用手机的比例,sum()可以对true,false进行计算,但不能对factor类型的数据进行计算,可以用length()
## error: ‘sum’ not meaningful for factors
> sum(pf$mobile_check_in == 1)/length(pf$mobile_check_in)
[1] 0.6459097

使用手机的比率为64.59%,说明超过一半的用户都在使用手机,所以手机app的开发具有重要意义。

你可能感兴趣的:(学习笔记)