Łącząc 2 kolumny na 1 kolumnę wiele razy w bardzo dużym zbiorze danych w RŁącząc 2 kolumny na 1 kolumnę wiele razy w bardzo dużym zbiorze danych w R
niezdarny rozwiązań pracuję na nie będą bardzo szybko, jeśli mogę je zmusić do pracy, a prawdziwy zestaw danych to ~ 1500 X 45000, więc muszą być szybkie. Zdecydowanie przegrałem 1) w tym momencie, chociaż mam kod dla 2) i 3).
Oto przykład zabawki struktury danych:
pop = data.frame(status = rbinom(n, 1, .42), sex = rbinom(n, 1, .5),
age = round(rnorm(n, mean=40, 10)), disType = rbinom(n, 1, .2),
rs123=c(1,3,1,3,3,1,1,1,3,1), rs123.1=rep(1, n), rs157=c(2,4,2,2,2,4,4,4,2,2),
rs157.1=c(4,4,4,2,4,4,4,4,2,2), rs132=c(4,4,4,4,4,4,4,4,2,2),
rs132.1=c(4,4,4,4,4,4,4,4,4,4))
Zatem istnieje kilka kolumn podstawowych informacji demograficznych, a następnie pozostałe kolumny są biallelic SNP informacji. Np .: rs123 jest allelem 1 rs123 i rs123.1 jest drugim allelem rs123.
1) trzeba połączyć wszystkie biallelic danych SNP, które są aktualnie w kolumnach 2 do 1 kolumny, tak, na przykład: rs123 i rs123.1 w jedną kolumnę (ale w zbiorze)
11
31
11
31
31
11
11
11
31
11
2) Muszę zidentyfikować najrzadziej występującą wartość SNP (w powyższym przykładzie jest to 31).
3) muszę wymieniać najrzadziej wartość SNP z 1 i druga (y) z 0.
pasty! Oczywiście! Chodzi mi o konkatenację. Dziękuję bardzo za pomoc. Teraz pracuję nad tym, aby działał on przez 45 000 kolumn. Dzięki jeszcze raz! –
Możesz pracować z 'grep()' i 'match()', aby uzyskać indeksy kolumn. Zachęcamy również do przegłosowania i/lub zaakceptowania tej odpowiedzi, jeśli trafi ona jako właściwą :-) –
zaakceptowana! :) Nie mam wystarczająco dużo punktów reputacyjnych, aby upowszechniać jeszcze ...! –