首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在r中,如何根据地层中的观测值数量从3维列联表中删除地层?

在r中,如何根据地层中的观测值数量从3维列联表中删除地层?
EN

Stack Overflow用户
提问于 2012-10-28 09:29:52
回答 1查看 178关注 0票数 1

我正在用数据框中的3个变量构建3d联想表。让我们假设我正在通过

代码语言:javascript
复制
table(x,y,z)

其中z是我进行分层的变量。我希望去掉该层中观察值数量为1的任何(,,z(i))

我该怎么做呢?首先,我很难弄清楚如何计算观测值,我认为我可以使用子集来削减我的偶然表。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-28 11:45:58

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

代码语言:javascript
复制
data <- data[-which(data$z %in% which(table(data$z)==1)),]

编辑

这似乎现在起作用了。我不确定这是否会在一般情况下工作,但它在这种情况下是有效的。

代码语言:javascript
复制
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')
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13107339

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档