2016-04-15 3 views
0

私はdata.frame = xを持っています。これは、1人から抽出したデータとラベルを含み、これらはx$datax$labelsとして抽出可能です。正しいデータを抽出していますか?

データはmatrixとして保存されます。各行は観測値で、各列はその観測値から抽出されたフィーチャです。

ラベルは、その観察のクラスを記述するリストを、ある

だからLabel[1] = "banana"

1行目の観察は、クラス「バナナ」内に存在する場合は、したがって、また抽出された特徴。

は、私はそれは私がデータに持っていたマトリックス構造を、行方不明ですけれども

x$data[x$labels=="banana"] 

問題が..ですのみラベル=「バナナ」を含むデータ行列を抽出しようとした瞬間にでています。

マトリックス構造で抽出することはできますか?

簡単な例:ここでは

data = matrix(data = c(rbind(sample(1:10, 5)),rbind(sample(1:10, 5)),rbind(sample(1:10, 5)),rbind(sample(1:10, 5)),rbind(sample(1:10, 5))), ncol = 5, nrow = 5) 

data 

>   [,1] [,2] [,3] [,4] [,5] 
[1,] 8 5 10 4 4 
[2,] 5 10 3 9 3 
[3,] 7 1 9 8 8 
[4,] 6 2 8 6 9 
[5,] 10 4 2 1 5 


label = matrix(data = c(rbind("banana","banana","juice", "poop", "air")) ,nrow = 5) 
>   [,1]  
[1,] "banana" 
[2,] "banana" 
[3,] "juice" 
[4,] "poop" 
[5,] "air" 

data[label == "banana"] 

>[1] 8 5 5 10 10 3 4 9 4 3 

マトリックスとして抽出することがいいだろう。

+0

を試してみてください、あなたはあなたの問題や予想される出力を示している例のデータセットを共有してくださいことはできますか? – mtoto

+0

あなたは 'data.frame(x $ data [x $ labels ==" banana "])' – Sangram

+0

を探していると思います。 – Lamda

答えて

0

まあ...それは私が思ったより簡単だった...

matrix(x$data[x$labels=="banana"],ncol = ncol(x$data) 
+0

同様にあなた自身の答えを受け入れるかもしれない:) – mtoto

2

この

data[label == "banana",]