min()无法按预期工作

时间:2017-05-25 07:32:01

标签: r

我试图获得最小的一列。

使用“abbr”因子将数据拆分为组。我的目标是返回第2列中与参数中传递的最小列数相对应的数据。如果有帮助,这是课程R编程入门课程的一部分。

最小值应该在8左右,显示为10.

请在这里帮助我。

这是我使用read.csv

的csv文件的链接

https://drive.google.com/file/d/0Bxkj3-FNtxqrLW14MFZCeEl6UGc/view?usp=sharing

best <- function(abbr, outvar){

    ## outcome is a dataframe consisting of a column labelled "State" (one of many)
    ## outvar is the desired column number

    statecol <- split(outcome, outcome$State) ##state is a factor which will be inputted as abbr

    dislist <- statecol[[abbr]][,2][statecol[[abbr]][, outvar] == 
                        min(statecol[[abbr]][, outvar])] ##continuation of prev line
    dislist
}

1 个答案:

答案 0 :(得分:0)

在我看来你搞砸了NA,确保指定na为不可用,并且na.rm = TRUE in min ..

filedata<-read.table(file.choose(),quote='"',sep=",",dec=".",header=TRUE,stringsAsFactors=FALSE, na.strings="Not Available")
   f<-function(df,abbr,outVar,na.rm=TRUE){
      outlist<-split(df,df["State"])
      tempCol<-outlist[[abbr]][outVar]
      outlist[[abbr]][,2][which(tempCol==min(tempCol,na.rm=na.rm))]
    }
    f(filedata,"AK",44)