繁体   English   中英

从R中的数据框中提取一行

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM