Mam problem z dodaniem jednego do dolnej części innej ramki danych.Dodawanie jednej ramki danych do końca innej ramki danych.frame w R
Mam jedną ramkę danych (nazwijmy ją DF1), która ma 1 wiersz i 5 kolumn. Mam kolejną ramkę danych (pozwala nazwać ją DF2), która ma 50 wierszy i 5 kolumn. Ustawiłem go tak, aby kolumny pomiędzy dwoma ramkami danych pasowały do siebie - mają te same kolumny. W rzeczywistości DF1 jest obliczeniem opartym na DF2.
To co DF1 wygląda następująco:
row.names pt1 pt2 pt3 pt4
calc 0.93 0.45 0.28 0.54
To co DF2 wygląda następująco:
row.names pt1 pt2 pt3 pt4
SNP1 AA AG AG AA
SNP2 CT CT TC CC
SNP3 GG CG CG <NA>
SNP4 AA GG AG AA
SNP5 <NA> <NA> <NA> <NA>
DF1 ma być liczba rzeczywistych punktów danych (# wartości, które jest nie brakuje) podzielone przez całkowitą liczbę możliwych wartości.
SO .. Chcę dodać DF1 do dołu df2 wyglądać tak:
row.names pt1 pt2 pt3 pt4
SNP1 AA AG AG AA
SNP2 CT CT TC CC
SNP3 GG CG CG <NA>
SNP4 AA GG AG AA
SNP5 <NA> <NA> <NA> <NA>
calc 0.93 0.45 0.28 0.54
Kiedy próbowałem za pomocą
both.dfs <- rbind(DF1, DF2) # DF1 is first here
DF1 to pierwszy wiersz w DF2. POTRZEBUJĘ, że to OSTATNI rząd.
Kiedy próbowałem za pomocą
both.dfs <- rbind(DF2, DF1) # DF2 is first here
pojawia się błąd:
Warning messages:
1: In `[<-.factor`(`*tmp*`, iseq, value = 0.84) :
invalid factor level, NAs generated
2: In `[<-.factor`(`*tmp*`, iseq, value = 0.84) :
invalid factor level, NAs generated
3: In `[<-.factor`(`*tmp*`, iseq, value = 0.84) :
invalid factor level, NAs generated
4: In `[<-.factor`(`*tmp*`, iseq, value = 0.74) :
invalid factor level, NAs generated
Próbowałem seryjnej, próbowałem dodać nowy wiersz do df2 a następnie subbing w wartościach DF2 .. nic nie działa! Jestem w rozpaczliwej potrzebie pomocy! Ktoś?
Krótka odpowiedź brzmi: nie możesz (lub przynajmniej powinnam "t). Kolumny ramek danych muszą być wektorem atomowym (to jest ten sam typ danych), a próbujesz mieszać numeryczne (DF1) i znak/czynnik (DF2). – joran
Będzie "działać", jeśli kolumny DF2 są znakami, a nie czynnikami. Ale nadal prawdopodobnie powinieneś znaleźć inny sposób łączenia tych zestawów danych. – joran