我想通过多种条件来了解过滤后的数据帧的形状或长度。我有2种方法,但是我有些困惑,因为它们给了我不同的输出。
x <- df[df$gender=='male',]
x <- x[x$stat == 0,]
nrow(x)
OUTPUT = Some Number
nrow(sqldf('SELECT * FROM df WHERE gender == "male" AND stat == 0'))
OUTPUT = Some Number
我对为什么输出会有所不同感到有些困惑?有什么想法吗?
答案 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)的子集函数。