заранее извините, если этот ответ плохо отформатирован, я новичок в R и сообществе SO, приветствую конструктивную критику. У меня есть фрейм данных, который выглядит так, и я пытаюсь отфильтровать его, чтобы он содержал только минимальное количество «Машины» и «Дома» для каждого человека.
my_data = data.frame("Name" = c("Dora", "Dora", "John", "John", "Marie", "Marie"),
"Cars" = c(2, 3, NA, NA, 4, 1),
"Houses" = c(NA, NA, 4, 3, 2, NA))
#Name Cars Houses
#1 Dora 2 NA
#2 Dora 3 NA
#3 John NA 4
#4 John NA 3
#5 Marie 4 2
#6 Marie 1 NA
Я хочу получить что-то вроде этого (особенно обратите внимание, что строка Mar ie изменилась, но это нормально, если она также разделена на 2 отдельные строки):
#Name Cars Houses
#Dora 2 NA
#John NA 3
#Marie 1 2
ИЛИ вот так:
#Name Cars Houses
#Dora 2 NA
#John NA 3
#Marie NA 2
#Marie 1 NA
На основе другие ответы, я пробовал
my_data %>%
group_by(Name) %>%
filter(Cars == min(Cars))
#Name Cars Houses
#Dora 2 NA
#Marie 1 NA
, но это приводит к тому, что строки John удаляются, прежде чем я смогу отфильтровать минимальное количество домов. Есть ли у кого-нибудь предложения, как к этому подойти? Заранее спасибо.