1

我正在从数据框中的 3 个变量构建 3d 列联表。假设我正在通过以下方式构建这些

table(x,y,z)

其中 z 是我要分层的变量。我想摆脱(,,z(i))该层中观察数为1的任何地方。

我该怎么做?首先,我很难弄清楚如何计算观察结果,我认为我可以使用子集来减少我的列联表。

4

1 回答 1

1

假设您的数据包含在名为 的数据框对象中data,则此代码应通过一次观察删除层中的所有数据。

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')
于 2012-10-28T03:45:57.760 回答