Ich möchte einige seiner Spalten nach den Zeilen eines anderen Datenrahmens unterteilen. So sind die beiden Datenrahmen werden wie unten dargestellt:Subset-Spalten eines Datenrahmens nach den Zeilen eines anderen Datenrahmens
df1 <- structure(list(ID = structure(c(3L, 1L, 2L, 5L, 4L), .Label = c("cg08", "cg09", "cg29", "cg36", "cg65"), class = "factor"), chr = c(16L, 3L, 3L, 1L, 8L), gene = c(534L, 376L, 171L, 911L, 422L), GS12 = c(0.15, 0.87, 0.6, 0.1, 0.72), GS32 = c(0.44, 0.93, 0.92, 0.07, 0.91), GS56 = c(0.46, 0.92, 0.62, 0.06, 0.87), GS87 = c(0.79, 0.93, 0.86, 0.08, 0.88)), .Names = c("ID", "chr", "gene", "GS12", "GS32", "GS56", "GS87"), class = "data.frame", row.names = c("1", "2", "3", "4", "5"))
df2 <- structure(list(samples = structure(c(1L, 2L, 4L, 3L, 6L, 5L), .Label = c("GS32", "GS33", "GS55", "GS56", "GS68", "GS87"), class = "factor"), ID2 = structure(c(1L, 6L, 3L, 4L, 5L, 2L), .Label = c("GM1", "GM10", "GM17", "GM18", "GM19", "GM7"), class = "factor")), .Names = c("samples", "ID2"), class = "data.frame", row.names = c(NA, -6L))
Daten:
df1:
ID chr gene GS12 GS32 GS56 GS87
1 cg29 16 534 0.15 0.44 0.46 0.79
2 cg08 3 376 0.87 0.93 0.92 0.93
3 cg09 3 171 0.60 0.92 0.62 0.86
4 cg65 1 911 0.10 0.07 0.06 0.08
5 cg36 8 422 0.72 0.91 0.87 0.88
df2:
samples ID2
GS32 GM1
GS33 GM7
GS56 GM17
GS55 GM18
GS87 GM19
GS68 GM10
Ich möchte alle Spalten von DF1 der Teilmenge (während in der endgültigen Ausgabe, alle Zeilen zu halten), die üblich sind in ID-Spalte von DF2, kurz gesagt, möchte ich Teilmengen Spalten eines Datenrahmens nach den Zeilen eines anderen Datenrahmens, gibt es irgendeine Funktion, die das tut?
Was ist Ihr erwartetes Ergebnis? – jogo
Versuchen 'df1 [schneiden (Namen (DF1), DF2 $ Proben)]' 'Wenn df2 $ samples' ist' factor' Gebrauch 'as.character (DF2 $ Proben)' – akrun
würde ich einen Blick auf die data.table haben Paket und die Funktion foverlaps. Vielleicht würde mir diese Antwort auch helfen: http://stackoverflow.com/questions/35719047/grouping-a-data-table-by-running-intervals – Phann