R中的条件计数和分组

dat*_*ous 1 conditional r count aggregation

type如果满足条件,我想计算每行有多少行x == 0.在SQL中类似于一个组

这是一个数据示例

  type    x    
search    0 
NULL      0 
public    0
search    1
home      0
home      1
search    0
Run Code Online (Sandbox Code Playgroud)

j18*_*897 8

我假设您想要在满足特定条件(当变量具有某个值时)时找到行数.

如果是这种情况,那么我想你将"x"作为列中表示的变量."x"可以采用多个值.假设您想要在x为0时找到数据中有多少行.这可以通过以下方式完成:

nrow(subset(data, x=="0")
Run Code Online (Sandbox Code Playgroud)

'data'是R中数据集的对象名称

编辑:

我现在正在看你编辑的数据帧.您可以使用它来解决您的问题:

table(data$type, data$x)
Run Code Online (Sandbox Code Playgroud)


小智 5

You could also use the sqldf package:

library(sqldf)
df <- data.frame(type=c('search','NULL','public','search','home','home','search'),x=c(0,0,0,1,0,1,0))
sqldf("SELECT type, COUNT(*) FROM df WHERE x=0 GROUP BY type")
Run Code Online (Sandbox Code Playgroud)

which gives the following result:

    type COUNT(*)
1   NULL        1
2   home        1
3 public        1
4 search        2
Run Code Online (Sandbox Code Playgroud)