Предположим, у нас есть такой фрейм данных:
df <- data.frame(v1=c("aa", "aa", "b", "cc", "cc"), V2=c("yes", "yes", "no", "yes", "no"))
> df
six seven
1 aa yes
2 aa yes
3 b no
4 cc yes
5 cc no
Я хочу отфильтровать, а затем сохранить в новом ряду фреймов данных, который соответствует 2 критериям: то же значение столбца «шесть» и определенный »семь "столбцовНапример, давайте предположим, что мы хотим строки со столбцом «да»:
> df
six seven
1 aa yes
2 aa yes
Как я могу это сделать?Я пытался с:
df_new <- filter(df, ...)
Но я уверен, уверен, как навязать оба условия.
и:
require(plyr)
ans = ddply(df, .(seven == "yes"), mutate, count = length(unique(six)))
Кто дает:
> ans
seven == "yes" six seven count
1 FALSE b no 2
2 FALSE cc no 2
3 FALSE cc no 2
4 TRUE aa yes 1
5 TRUE aa yes 1
Но это не фильтрует фрейм данных.
РЕДАКТИРОВАТЬ: Чтобы уточнить, если у меня есть больше столбцов в фрейме данных, например:
df <- data.frame(v1=c("aa", "aa", "b", "cc", "cc","aa","aa"), v2=c("yes", "yes", "no", "yes", "no","no","yes"))
> df
v1 v2
1 aa yes
2 aa yes
3 b no
4 cc yes
5 cc no
6 aa no
7 aa yes
Коддолжен дать это:
df
six seven
1 aa yes
2 aa yes
7 aa yes