w R, powiedzmy mamy wektor
area = c(rep(c(26:30), 5), rep(c(500:504), 5), rep(c(550:554), 5), rep(c(76:80), 5))
i inny wektor yield = c(1:100)
.
teraz, że chcę do indeksu tak:W R: wektory do ustalania przez logicznego porównywania wartości w zakresie indeksów ==: C (min: maks)
> yield[area==27]
[1] 2 7 12 17 22
> yield[area==501]
[1] 27 32 37 42 47
Nie ma problemu, prawda? Ale dziwne rzeczy zaczynają się dziać, gdy próbuję go indeksować, używając c(A, B)
. (I jeszcze dziwniejsze, gdy próbuję c(min:max)
...)
> yield[area==c(27,501)]
[1] 7 17 32 42
Co ja spodziewałem się oczywiście przypadki, które są obecne w obu innych przykładach, a nie tylko niektóre dziwne ich kombinacją. To działa, kiedy mogę używać rury lub operatora:
> yield[area==27 | area==501]
[1] 2 7 12 17 22 27 32 37 42 47
ale co jeśli ja pracuję z wieloma? Powiedz, że chcę indeksować według zakresu c(27:503)
? W moim prawdziwym przykład istnieje wiele więcej punktów i zakresy danych, więc to sprawia, że więcej sensu, proszę nie sugerować to zrobić ręcznie, co w istocie znaczy:
yield[area==27 | area==28 | area==29 | ... | area==303 | ... | area==500 | area==501]
Musi istnieć lepszy sposób. ..
Awesome, thanks :) Również, gdzie na ziemi jest to udokumentowane? Jak mam to znaleźć bez pytania? O co proszę o pomoc? Nieprzydatna pomoc, którą nazywam: P – gakera
@gakera: jest w "meczu". Powinieneś go znaleźć, odgadując lepsze słowa kluczowe lub czytając pełną instrukcję obsługi. :-P Myślę, że po raz pierwszy natknąłem się na 'match' przez sekcję" Zobacz także "w'? Grep'. –
Haha, zgaduj lepsze słowa kluczowe lub przeczytaj pełną instrukcję, uwielbiam to! R jest przyjazny dla użytkownika: D Jeszcze raz dziękuję. – gakera