[英]Extracting a row from a data frame in R
假设我们有一个像这样的矩阵:
> A = matrix(
+ c(2, 4, 3, 1, 5, 7), # the data elements
+ nrow=2, # number of rows
+ ncol=3, # number of columns
+ byrow = TRUE) # fill matrix by rows
> A # print the matrix
[,1] [,2] [,3]
[1,] 2 4 3
[2,] 1 5 7
现在,我只是使用了这个小例子,但想像一下矩阵是否更大,例如200行和5列等。我想做的是从第3列获取最小值,然后提取该行。 换句话说,找到并获得行3rd属性,该行在该数据帧的整个列中最低。
dataToReturn <- which(A== min(A[, 3])
但这不起作用。
另一种方法是使用which.min
A[which.min(A[, 3]), ]
##[1] 2 4 3
您可以通过[]
和min
通过一个简单的子集来实现:
A[A[,3] == min(A[,3]),]
[1] 2 4 3
此读取:返回的那些行(多个) A
其中柱3的值等于最小的第3列的A
。
如果您有这样的矩阵:
A <- matrix(c(2,4,3,1,5,7,1,3,3), nrow=3, byrow = T)
> A
[,1] [,2] [,3]
[1,] 2 4 3
[2,] 1 5 7
[3,] 1 3 3
> A[which.min(A[, 3]), ] #returns only the first row with minimum condition
[1] 2 4 3
> A[A[,3] == min(A[,3]),] #returns all rows with minimum condition
[,1] [,2] [,3]
[1,] 2 4 3
[2,] 1 3 3
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.