データ フレームの 3 つの変数から 3D 分割表を作成しています。これらを介して構築しているとしましょう
table(x,y,z)
ここで、z は階層化する変数です。(,,z(i))
その階層の観測数が 1 の場合は、すべて削除したいと思います。
どうすればこれを行うことができますか? そもそも観測値をカウントする方法を理解するのに苦労しましたが、サブセットを使用して分割表を切り詰めることができると思っていました。
データ フレームの 3 つの変数から 3D 分割表を作成しています。これらを介して構築しているとしましょう
table(x,y,z)
ここで、z は階層化する変数です。(,,z(i))
その階層の観測数が 1 の場合は、すべて削除したいと思います。
どうすればこれを行うことができますか? そもそも観測値をカウントする方法を理解するのに苦労しましたが、サブセットを使用して分割表を切り詰めることができると思っていました。
データが という名前のデータ フレーム オブジェクトに含まれていると仮定するとdata
、このコードは 1 つの観測値を持つ階層内のすべてのデータを削除する必要があります。
data <- data[-which(data$z %in% which(table(data$z)==1)),]
編集
これは現在機能しているようです。これが一般的に機能するかどうかはわかりませんが、この状況では機能します。
data <- read.csv(file='~/Downloads/juveniles2forMax.csv')
data <- data.frame(
Urban = data$Urban,
RecidivismPlacement = data$RecidivismPlacement,
timeinjj = data$timeinjj
)
removeStrata <- function(data, z) {
data[-which(data[,z] %in% as.numeric(attr(which(table(data[,z])==1),"names"))),]
}
removeStrata(data=data, z='timeinjj')