R中的多条件语句

时间:2019-05-07 04:07:55

标签: r

我想通过多种条件来了解过滤后的数据帧的形状或长度。我有2种方法,但是我有些困惑,因为它们给了我不同的输出。

  1. 方法1
    x <- df[df$gender=='male',]    
    x <- x[x$stat == 0,]    
    nrow(x)    
    OUTPUT = Some Number    
  1. 方法2
    nrow(sqldf('SELECT * FROM df WHERE gender == "male" AND stat == 0'))    
    OUTPUT = Some Number    

我对为什么输出会有所不同感到有些困惑?有什么想法吗?

1 个答案:

答案 0 :(得分:0)

在方法一中,您似乎将x分配给df [df $ gender =='male'],然后用将x分配给x [x $ stat == 0]来替换x。因此,您将只能获得nrow的stat == 0。在没有数据集的情况下,x <-df [df $ gender =='male'&x $ stat == 0]可能会起作用。尽管我从未这样做过。我会使用x <-subset(x,df $ gender =='male'&x $ stat == 0)然后nrow(x)的子集函数。