在这里,我想删除按日期只有一个条目的条目的条目.例如,我想删除纽约和旧金山的参赛作品,因为他们在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)