1

我正在尝试做一些在 SQL 中可能用“...have count(ID) > 2 ...”来完成的事情

我想在重复两次以上的数据框的两列子集中找到 col 的那些值。该函数table为我提供了稀疏矩阵,我不确定如何将其结果调整为我想要的。对于矩阵,rowSums会找到我的总数,但我想要与标识符关联的总数。

数据集 mtcars 更清楚地显示了我的意思。

x <- head(table( mtcars$hp, mtcars$disp), 20)
x[,1] <- as.numeric(rownames(x))
x
      71.1 75.7 78.7 79 95.1 108 120.1 120.3 121 140.8 145 146.7 160 167.6 225 258 275.8 301 304 318 350 351 360 400 440 460 472
  52    52    1    0  0    0   0     0     0   0     0   0     0   0     0   0   0     0   0   0   0   0   0   0   0   0   0   0
  62    62    0    0  0    0   0     0     0   0     0   0     1   0     0   0   0     0   0   0   0   0   0   0   0   0   0   0
  65    65    0    0  0    0   0     0     0   0     0   0     0   0     0   0   0     0   0   0   0   0   0   0   0   0   0   0
  66    66    0    1  1    0   0     0     0   0     0   0     0   0     0   0   0     0   0   0   0   0   0   0   0   0   0   0
  91    91    0    0  0    0   0     0     1   0     0   0     0   0     0   0   0     0   0   0   0   0   0   0   0   0   0   0
  93    93    0    0  0    0   1     0     0   0     0   0     0   0     0   0   0     0   0   0   0   0   0   0   0   0   0   0
  95    95    0    0  0    0   0     0     0   0     1   0     0   0     0   0   0     0   0   0   0   0   0   0   0   0   0   0
  97    97    0    0  0    0   0     1     0   0     0   0     0   0     0   0   0     0   0   0   0   0   0   0   0   0   0   0
  105  105    0    0  0    0   0     0     0   0     0   0     0   0     0   1   0     0   0   0   0   0   0   0   0   0   0   0
  109  109    0    0  0    0   0     0     0   1     0   0     0   0     0   0   0     0   0   0   0   0   0   0   0   0   0   0
  110  110    0    0  0    0   0     0     0   0     0   0     0   2     0   0   1     0   0   0   0   0   0   0   0   0   0   0
  113  113    0    0  0    1   0     0     0   0     0   0     0   0     0   0   0     0   0   0   0   0   0   0   0   0   0   0
  123  123    0    0  0    0   0     0     0   0     0   0     0   0     2   0   0     0   0   0   0   0   0   0   0   0   0   0
  150  150    0    0  0    0   0     0     0   0     0   0     0   0     0   0   0     0   0   1   1   0   0   0   0   0   0   0
  175  175    0    0  0    0   0     0     0   0     0   1     0   0     0   0   0     0   0   0   0   0   0   1   1   0   0   0
  180  180    0    0  0    0   0     0     0   0     0   0     0   0     0   0   0     3   0   0   0   0   0   0   0   0   0   0
  205  205    0    0  0    0   0     0     0   0     0   0     0   0     0   0   0     0   0   0   0   0   0   0   0   0   0   1
  215  215    0    0  0    0   0     0     0   0     0   0     0   0     0   0   0     0   0   0   0   0   0   0   0   0   1   0
  230  230    0    0  0    0   0     0     0   0     0   0     0   0     0   0   0     0   0   0   0   0   0   0   0   1   0   0
  245  245    0    0  0    0   0     0     0   0     0   0     0   0     0   0   0     0   0   0   0   1   0   1   0   0   0   0

对于这个 20 行的数据框,我想要的结果是:

110 3
175 3
180 3
4

1 回答 1

2

像这样的东西?

df <- mtcars[ , c("hp", "disp")]
tt <- with(df, table(hp))
data.frame(count = tt[tt > 2])

#     count
# 110     3
# 175     3
# 180     3
于 2013-11-09T23:15:30.077 回答