删除R中组中只有一个观察值的条目

ste*_*tor 5 r

在这里,我想删除按日期只有一个条目的条目的条目.例如,我想删除纽约和旧金山的参赛作品,因为他们在4-11和4-12只有1次观察.

day                          City                  age
4-10                        Miami                   30
4-10                        Miami                   23
4-11                        New York                24
4-12                        San Francisco           30
Run Code Online (Sandbox Code Playgroud)

注意数据集称为DG

我尝试使用for循环查找日期并了解每个分区每天的条目数,但我不知道如何使用R. countx = 0中的数组

D = unique(DG$day)
for (i in 1:length(D))
{
    for (j in 1:length(DG$age))
    {
      if (DG$day[j] == D{i]
      {
      countx[j] = 1
      }
      else
      {
      countx[j] = 0
      }
    }
Binded <- cbind(countx, DG)
Run Code Online (Sandbox Code Playgroud)

MrF*_*ick 14

使用您的示例数据

DG <- read.csv(text="day,City,age
4-10,Miami,30
4-10,Miami,23
4-11,New York,24
4-12,San Francisco,30")
Run Code Online (Sandbox Code Playgroud)

你可以用 dplyr

library(dplyr)
DG %>% group_by(day,City) %>% filter(n()>1)
Run Code Online (Sandbox Code Playgroud)

或基地R.

DG[ave(rep(1, nrow(DG)), DG$day, DG$City, FUN=length)>1,]
Run Code Online (Sandbox Code Playgroud)

都归来了

   day  City age
1 4-10 Miami  30
2 4-10 Miami  23
Run Code Online (Sandbox Code Playgroud)

或者你可以使用data.table(按照@Frank的建议)

library(data.table)
setDT(DG)[,if (.N>1) .SD, by=.(City,day)]
Run Code Online (Sandbox Code Playgroud)