Wyodrębnij wiersze pierwszego wystąpienia zmiennej w ramce danych
Mam ramkę danych z dwiema zmiennymi, datą i taksonami, i chcę uzyskać datę pierwszego wystąpienia każdego taksonu. Istnieje 9 różnych dat i 40 różnych taksonów w ramce danych zawierającej 172 wiersze, ale moja odpowiedź powinna obejmować tylko 40 wierszy.
Taksony to czynnik, a data to data.
Na przykład moja ramka danych (nazywana „gatunkiem”) jest skonfigurowana w następujący sposób:
Date Taxa
2013-07-12 A
2011-08-31 B
2012-09-06 C
2012-05-17 A
2013-07-12 C
2012-09-07 B
i szukałbym odpowiedzi takiej:
Date Taxa
2012-05-17 A
2011-08-31 B
2012-09-06 C
Próbowałem użyć:
t.first <- species[unique(species$Taxa),]
co dało mi prawidłową liczbę linii, ale były zduplikowane taksony. Jeśli użyję tylko unikalnego (gatunek $ Taxa), wydaje mi się, że daje mi poprawną odpowiedź, ale wtedy nie wiem, kiedy to się po raz pierwszy wydarzyło.
Dzięki za wszelką pomoc.
Nie znaleziono powiązanych wyników
Zaproszony:
Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się
5 odpowiedzi
Anonimowy użytkownik
Potwierdzenie od:
t.first <- species[match(unique(species$Taxa), species$Taxa),]
zwraca indeksy pierwszego dopasowania w porównywanych wektorach, co daje żądane ciągi.
Anonimowy użytkownik
Potwierdzenie od:
data[!duplicated(data$Taxa), ]
Wynik:
Anonimowy użytkownik
Potwierdzenie od:
Możesz uzyskać to samo, sortując według daty:
Anonimowy użytkownik
Potwierdzenie od:
Uwaga: Możesz dodać simplify = T, aby dotknąć, aby powrócić
obiekt POSIXt, ale zwraca listę. Więcej szczegółów można znaleźć tutaj:
Nieoczekiwane zachowanie Min, Taply i Posixct/Posixlt Classes?
http://r.789695.n4.nabble.com/ ... .html
Anonimowy użytkownik
Potwierdzenie od:
Dane
: