R-函数which()没有产生正确的输出
我有一个temp1表,它有两列“Hospital.Name”和“heartattack”以及一个名为“colname”的变量 我得到“心脏病发作”栏的最小结果 请帮我了解我的配方:R-函数which()没有产生正确的输出,r,R,我有一个temp1表,它有两列“Hospital.Name”和“heartattack”以及一个名为“colname”的变量 我得到“心脏病发作”栏的最小结果 请帮我了解我的配方: temp1[which(temp1[[colname1]] == min(as.numeric(temp1[[colname1]]))),] 如果我理解正确,那么您需要一行的所有信息,其中一个变量的值最小 如果您想这样做,可以尝试which.min 使用mtcars数据集显示在R会话中: mtcars[which.
temp1[which(temp1[[colname1]] == min(as.numeric(temp1[[colname1]]))),]
如果我理解正确,那么您需要一行的所有信息,其中一个变量的值最小 如果您想这样做,可以尝试
which.min
使用mtcars数据集显示在R会话中:
mtcars[which.min(mtcars$mpg),]
以上将获取mtcars数据中mpg字段最小值的记录(行)
#> mtcars[which.min(mtcars$mpg),]
# mpg cyl disp hp drat wt qsec vs am gear carb
#Cadillac Fleetwood 10.4 8 472 205 2.93 5.25 17.98 0 0 3 4
现在,如果您使用数据集中使用的方法,您可以得到如下内容:
mtcars[which(mtcars[[colname1]] == min(mtcars[[colname1]])),]
这将产生如下两个记录:
#> mtcars[which(mtcars[[colname1]] == min(mtcars[[colname1]])),]
# mpg cyl disp hp drat wt qsec vs am gear carb
#Cadillac Fleetwood 10.4 8 472 205 2.93 5.250 17.98 0 0 3 4
#Lincoln Continental 10.4 8 460 215 3.00 5.424 17.82 0 0 3 4
故事的寓意which.min
生成逻辑匹配的第一个实例,但是如果有多条最小值相同的记录,which
可以为您提供匹配的两个实例
从文件:
确定位置,即(第一个)最小值或最大值的索引
指数字(或逻辑)向量
在您的情况下,它可能类似于:
temp1[which.min(temp1[,colname]) ,]
如果不是数字形式,而是一步一步做很多事情,那么为了简单起见,请打破它
temp1[,colname] <- as.numeric(temp1[,colname]) ##numeric conversion
temp1[which.min(temp1[,colname]) ,]
#> mtcars[which(mtcars[[colname1]] == min(mtcars[[colname1]])),]
# mpg cyl disp hp drat wt qsec vs am gear carb
#Cadillac Fleetwood 10.4 8 472 205 2.93 5.250 17.98 0 0 3 4
#Lincoln Continental 10.4 8 460 215 3.00 5.424 17.82 0 0 3 4
temp1[which.min(temp1[,colname]) ,]
temp1[,colname] <- as.numeric(temp1[,colname]) ##numeric conversion
temp1[which.min(temp1[,colname]) ,]
temp1[which(temp1[[colname]] == min(temp1[[colname]])),]