Ich habe einen großen Datensatz und ich möchte die Ergebnisse Schleife, die Spalte als vorhanden in einer Liste subtrahieren und das Ergebnis für jede Zeile in einer neuen Spalte ausgeben.Hinzufügen neuer Spalten im Datenrahmen durch Subtrahieren Spalte aus einer Liste
ref1 <- samples Controls
E_2334188 E_2334207
E_2334202 E_2334221
df1 <-
Chr Start End Feature E_2334188 E_2334202 E_2334207 E_2334221
1 740001 760000 1:740001-760000 1.6832013 0.8346011 -0.23045394 1.5974912
1 760001 780000 1:760001-780000 -0.3231613 -1.8504905 0.13668752 -0.38662600
1 780001 800000 1:780001-800000 -0.3936060 -2.2163153 -0.15266541 -0.60706691
ind <- which(names(df1) %in% ref1$samples)
rnd <- which(names(df1) %in% ref1$controls)
df2 <- df1[,c(1:4)]
df2$newcol <- 0
for (i in 1:nrow(ref1)){
n <- df1[ind]-df1[rnd]
df2$newcol[i] <- n
}
Ergebnis
df2 <-
Chr Start End Feature E_2334188 E_2334202
1 740001 760000 1:740001-760000 1.913655 -0.7628901
1 760001 780000 1:760001-780000 -0.4598488 -1.463865
1 780001 800000 1:780001-800000 -0.2409406 -1.609248
Ich habe einen großen Datensatz. Mit 74 Spalten, für ein einfaches Verständnis, ich Teilmenge die Daten – beginner
@beginner Es ist nicht wirklich wichtig. Wenn Sie Spaltennamen in den 'Beispielen' und 'Controls' von 'Ref1' haben, werden im Grunde die entsprechenden Spalten von 'df1' substrahiert und gleich große Datasets subtrahiert. – akrun
@beginner Hier gehe ich davon aus, dass die Spalten in der gleichen Zeile (Spaltennamen) von 'ref1' subtrahiert werden sollen. – akrun