我有一个如下所示的数据框:
df<-data.frame(H0<-c(35.4, 36.0, 36.0, 36.4), H1<-c(34.2, 34.0, NA, NA),
H2<-c(33.4, 33.5, NA, 34.2), H3<-c(32.9, 33.0, 34.0, NA),
H4<-c(32.8, 33.0, 33.5, 33.2))
我需要找到第一行中每行的最小值:
min(df[1,], na.rm=TRUE)
r中是否有一个函数会返回列号(本例中为5)而不是实际值。
答案 0 :(得分:1)
df<-data.frame(H0=c(35.4, 36.0, 36.0, 36.4), H1=c(34.2, 34.0, NA, NA),
H2=c(33.4, 33.5, NA, 34.2), H3=c(32.9, 33.0, 34.0, NA),
H4=c(32.8, 33.0, 33.5, 33.2))
which.min(df[1,])
# H4
# 5
注意:使用例如创建数据框时H0<-c(...)
而不是H0=c(...)
您也在创建向量H0
等,并且列名称将难以理解。
答案 1 :(得分:1)
如果您需要获取行中所有min
值的列名
apply(df,1, function(x) {x1 <-x[!is.na(x)]; which(x1== min(x1))})
# [[1]]
# H4
# 5
# [[2]]
# H3 H4
# 4 5
# [[3]]
# H4
# 3
# [[4]]
# H4
# 3