我试图获得最小的一列。
使用“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
}
答案 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)