Mam dwie poniższe tabele:R - Tworzenie nowej zmiennej, gdzie każda obserwacja zależy od innej tabeli i innych zmiennych w ramce danych
df <- data.frame(eth = c("A","B","B","A","C"),ZIP1 = c(1,1,2,3,5))
Inc <- data.frame(ZIP2 = c(1,2,3,4,5,6,7),A = c(56,98,43,4,90,19,59), B = c(49,10,69,30,10,4,95),C = c(69,2,59,8,17,84,30))
eth ZIP1 ZIP2 A B C
A 1 1 56 49 69
B 1 2 98 10 2
B 2 3 43 69 59
A 3 4 4 30 8
C 5 5 90 10 17
6 19 4 84
7 59 95 39
Chciałbym utworzyć zmienną Inc w ramce danych df gdzie dla każdej obserwacji wartość jest przecięciem punktu obserwacji eth i ZIP. W moim przykładzie będzie to prowadzić do:
eth ZIP1 Inc
A 1 56
B 1 49
B 2 10
A 3 43
C 5 17
pętli lub brute force dość mógł go rozwiązać, ale na to potrzeba czasu na moim zbiorze, szukam bardziej subtelny sposób może użyciu data.table. Wydaje mi się, że jest to bardzo standardowe pytanie i przepraszam, jeśli tak jest, moja niezdolność do sformułowania dokładnego tytułu tego problemu (jak być może zauważyliście ...) jest może dlatego nie znalazłem żadnego podobnego pytania w wyszukiwaniu na forum ..
Dzięki!
Dobrze, dziękuję! Nadal jestem nowicjuszem i nie myślę wystarczająco mocno, aby korzystać z tych funkcji :) Po prostu nastąpiła awaria, mówiąc, że zmienne dla x i y muszą odpowiadać. Zmieniłem nazwy dla nich tak, aby były takie same i nadal się rozbijali, wtedy użyłem prostego "by" zamiast "by.x by.y" i zadziałało. – Yurienu