1

私は、SQL で "...having count(ID) > 2 ..." で実行できるようなことをしようとしています。

データフレームの 2 列のサブセットで、2 回以上繰り返される列の値を見つけたいと考えています。この関数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 に答える