R 包含某些列的行中的最小值
假设我有一些数字如下:R 包含某些列的行中的最小值,r,R,假设我有一些数字如下: ID K1 K2 K3 K4 K5 1 0.1 0.2 0.15 0.25 0.35 我想从列K1、K2、K4和K5中获取最小值。 我知道如何获得一行中所有值的最小值: apply(my.matrix, 1, FUN = function(x) {min(x[x > 0])}) 但是,我不知道如何扩展该语句,以便排除一列,并获得剩余列的最小值 您可以通过重塑来实现这一点: library(tidyr) library(dplyr) data
ID K1 K2 K3 K4 K5
1 0.1 0.2 0.15 0.25 0.35
我想从列K1、K2、K4和K5中获取最小值。我知道如何获得一行中所有值的最小值:
apply(my.matrix, 1, FUN = function(x) {min(x[x > 0])})
但是,我不知道如何扩展该语句,以便排除一列,并获得剩余列的最小值 您可以通过重塑来实现这一点:
library(tidyr)
library(dplyr)
data %>%
gather(K_number, K, K1:K5) %>%
group_by(ID) %>%
filter(K_number != "K3") %>%
filter(K == min(K) ) %>%
right_join(data)
您可以在矩阵的子集上使用apply
apply(my.matrix[,c(2,3,5,6)],1,min)
在转换为
data.frame
之后,我们可以使用pmin
do.call(pmin, c(as.data.frame(my.matrix[,c('K1', 'K2', 'K4', 'K5')]),
list(na.rm=TRUE)))
或者使用
库(matrixStats)
数据
set.seed(24)
我的黑客帝国
library(matrixStats)
rowMins(my.matrix[,c('K1', 'K2', 'K4', 'K5')], na.rm=TRUE)
set.seed(24)
my.matrix <- matrix(sample(c(1:9, NA), 4*10, replace=TRUE),
ncol=10, dimnames=list(NULL, paste0('K', 1:10)))