Mam ramkę danych z kolumną ID i kilkoma kolumnami dla wartości. Chciałbym zachować tylko niektóre wiersze ramki danych w zależności od tego, czy wartość identyfikatora w tym wierszu jest zgodna z innym zestawem wartości (na przykład "keep").Utrzymywanie tylko niektórych wierszy ramki danych na podstawie zestawu wartości
Dla uproszczenia, oto przykład:
df <- data.frame(ID = sample(rep(letters, each=3)), value = rnorm(n=26*3))
keep <- c("a", "d", "r", "x")
Jak mogę utworzyć nową ramkę danych składającą się z wierszy, które mają tylko identyfikatory zgodnymi zachować? Mogę to zrobić dla tylko jednej litery za pomocą funkcji which()
, ale z wieloma literami otrzymuję komunikaty ostrzegawcze i nieprawidłowe zwroty. Wiem, że mogłem uruchomić pętlę for przez ramkę danych i ekstrapolować w ten sposób, ale zastanawiam się, czy istnieje bardziej elegancki i skuteczny sposób radzenia sobie z tym. Z góry dziękuję.
Spróbuj df [df $ ID% w% zachować,] lub podzbiór (df, ID% w% zachować) - patrz http://stat.ethz.ch/R-manual/R-devel/library/base /html/sets.html – Adrian
@Adrian => answer ... –