2016-11-25 6 views
-2

Dies mag eine einfache Frage sein, aber ich konnte keine Antwort finden. Stellen Sie sich vor, Sie haben einen Datenrahmen mit n Spalten mit molekularen Merkmalen. In der letzten Zeile jeder Spalte wird ein Variationskoeffizient ausgedrückt.Subset-Spalten basierend auf Zeilenwert

Beispiel Datensatz:

a <- data.frame(matrix(runif(30),ncol=3)) 
b <- c(50.23,45.23,21) 
a<-rbind(a,b) 

     X1   X2   X3 
1 0.1097075 0.78584027 0.20925033 
2 0.6081752 0.39669748 0.65559913 
3 0.9912855 0.68462073 0.54741795 
4 0.8543848 0.53776889 0.43789447 
5 0.2579654 0.92188090 0.61292895 
6 0.6203840 0.73152279 0.82866311 
7 0.6643195 0.84953926 0.62192976 
8 0.5760624 0.30949900 0.11032929 
9 0.8888167 0.04530598 0.08089825 
10 0.8926815 0.61736284 0.19834310 
11 50.2300000 45.23000000 21.00000000 

Wie Subset ich so dass ich nur die Spalten mit CV erhalten> 50 in der letzten Reihe? So würde mein neues data.frame sein:

X1 
1 0.1097075 
2 0.6081752 
3 0.9912855 
4 0.8543848 
5 0.2579654 
6 0.6203840 
7 0.6643195 
8 0.5760624 
9 0.8888167 
10 0.8926815 
11 50.230000 
+0

A-a, kein spähen, wie die Daten erzeugt werden! :) –

Antwort

1

Wir tun können

a[,a[nrow(a),]>50,drop=FALSE] 
Verwandte Themen