Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R:如何在if-else语句中进行计数并删除if-count<;2. 模型_R_If Statement_Delete Row - Fatal编程技术网

R:如何在if-else语句中进行计数并删除if-count<;2. 模型

R:如何在if-else语句中进行计数并删除if-count<;2. 模型,r,if-statement,delete-row,R,If Statement,Delete Row,这些将被保留 dt[!(duplicated(dt[, -2]) | duplicated(dt[, -2], fromLast = TRUE)), ] # Model Price region # 10 B 15 W # 13 C 24 E 对于20k观测,几乎有5000种模型类型 dt[duplicated(dt[, -2]) | duplicated(dt[, -2], fromLast = TRUE), ] # Model

这些将被保留

dt[!(duplicated(dt[, -2]) | duplicated(dt[, -2], fromLast = TRUE)), ]

#    Model Price region
# 10     B    15      W
# 13     C    24      E
对于20k观测,几乎有5000种模型类型

dt[duplicated(dt[, -2]) | duplicated(dt[, -2], fromLast = TRUE), ]

#    Model Price region
# 1      A    12      W
# 2      A    14      E
# 3      A    15      E
# 4      A    13      W
# 5      A    16      W
# 6      B    36      E
# 7      B    32      E
# 8      B    24      E
# 9      B    14      E
# 11     C    14      W
# 12     C    11      W
# 14     C    31      W
这些将被保留

dt[!(duplicated(dt[, -2]) | duplicated(dt[, -2], fromLast = TRUE)), ]

#    Model Price region
# 10     B    15      W
# 13     C    24      E
对于20k观测,几乎有5000种模型类型

dt[duplicated(dt[, -2]) | duplicated(dt[, -2], fromLast = TRUE), ]

#    Model Price region
# 1      A    12      W
# 2      A    14      E
# 3      A    15      E
# 4      A    13      W
# 5      A    16      W
# 6      B    36      E
# 7      B    32      E
# 8      B    24      E
# 9      B    14      E
# 11     C    14      W
# 12     C    11      W
# 14     C    31      W

您可以创建一个计数器变量并根据它进行过滤。使用dplyr软件包:

库(dplyr)

dt%groupby(Model)%%>%filter(n_distinct(region)>1)%%>%groupby(Model,region)%%>%filter(n()>1)
您可以创建一个计数器变量并根据它进行筛选。使用dplyr软件包:

库(dplyr)

dt%group\U by(模型)%%>%filter(n\u distinct(区域)>1)%%>%group\U by(模型,区域)%%>%filter(n()>1)

您只是查看这两列,还是数据更复杂
dt[duplicated(dt[,-2])| duplicated(dt[,-2],fromLast=TRUE),]
。非常感谢。但是,如果所有这些都在同一个区域,我们也可以去掉模型类型吗。让我们把第13排换成(C,24,W)。现在,我想删除整个类型C,因为所有的C都在W区域。你只是在看这两列,还是你的数据更复杂
dt[duplicated(dt[,-2])| duplicated(dt[,-2],fromLast=TRUE),]
。非常感谢。但是,如果所有这些都在同一个区域,我们也可以去掉模型类型吗。让我们把第13排换成(C,24,W)。现在,我想删除整个类型C,因为所有的C都在W区域。这很有效。非常感谢。但是,如果所有这些都在同一个区域,我们也可以去掉模型类型吗。让我们把第13排换成(C,24,W)。现在,我想删除整个类型C,因为所有C都在W区域。没有理由在你的
ave
中使用
as.numeric
它,是吗?@YanyingLi
dt[带(dt,ave(as.numeric(Model),Model,FUN=length)!=ave(as.numeric(Model),dt[,-2],FUN=length)),]
这是独立于当前问题还是同时进行?@Frank如果区域是OP原始数据集中的一个因素,您将收到无效级别警告。但第二次你是对的example@rawr这是一个独立的问题。让我们回到我发布的原始数据。如果所有模型都落在一个区域中,我想去掉模型类型,怎么样?这很有效。非常感谢。但是,如果所有这些都在同一个区域,我们也可以去掉模型类型吗。让我们把第13排换成(C,24,W)。现在,我想删除整个类型C,因为所有C都在W区域。没有理由在你的
ave
中使用
as.numeric
它,是吗?@YanyingLi
dt[带(dt,ave(as.numeric(Model),Model,FUN=length)!=ave(as.numeric(Model),dt[,-2],FUN=length)),]
这是独立于当前问题还是同时进行?@Frank如果区域是OP原始数据集中的一个因素,您将收到无效级别警告。但第二次你是对的example@rawr这是一个独立的问题。让我们回到我发布的原始数据。如果所有的模型类型都在一个区域中,我想去掉它们,怎么样?
set.seed(1)
n <- 20000
dd <- data.frame(Model = sample(1:5000, n, TRUE),
                 Price = rpois(n, 15),
                 region = sample(c('E','W'), n, TRUE))

dim(dd[duplicated(dd[, -2]) | duplicated(dd[, -2], fromLast = TRUE), ])
# [1] 17289     3
dim(dd[ave(as.numeric(dd$region), dd[, -2], FUN = length) > 1, ])
# [1] 17289     3

dt[ave(as.numeric(dt$region), dt[, -2], FUN = length) > 1, ]

#    Model Price region
# 1      A    12      W
# 2      A    14      E
# 3      A    15      E
# 4      A    13      W
# 5      A    16      W
# 6      B    36      E
# 7      B    32      E
# 8      B    24      E
# 9      B    14      E
# 11     C    14      W
# 12     C    11      W
# 14     C    31      W