我有data.frame
= x,其中包含从一个人提取的数据和标签,这些数据可以提取为x$data
和x$labels
。
数据存储为matrix
,其中每行是观察,每列是从该观察中提取的特征。
标签是描述该观察类别的列表,
所以如果Label[1] = "banana"
第一行中的观察是否位于“banana”类中,因此也提取了特征。
我正在尝试提取仅包含label =“banana”的数据矩阵..
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 :(得分:2)
Try this
data[label == "banana",]
答案 1 :(得分:0)
嗯..这比我想象的要容易......
matrix(x$data[x$labels=="banana"],ncol = ncol(x$data)