![](/img/trans.png)
[英]Subset a dataframe based on identifying max and min values in a column (in R)
[英]subset dataframe, based on min()
我正在嘗試建立一個函數,該函數使用y參數對數據框進行子集設置,然后計算yp
列的最小值。 然后,將yp
列的最小值用於關於c
列的同一數據幀的子集。
b <- function (y) {
df<- read.csv("C:/../.csv", colClasses="character")
y.p<-paste("d",y, sep=".")
minimum=min(min.outcome<-as.numeric(data.frame[,y.p]),na.rm=T)
df[df$y.p==minimum,"c"]
}
這是數據框的一部分: https : //www.dropbox.com/s/y3152d1ki1ot232/Classeur2.csv
運行該函數后,結果是character(0)
!
我已經逐行測試了功能,並且錯誤似乎在最后一行。
您能幫我解決這個問題嗎?
謝謝,
好的,說實話,很難說出要完成的任務,但是我認為,如果要讀取的數據具有以d.
開頭的多列,則希望將字符值傳遞給y
。 d.
? 無論如何,如果這是不正確的,請逐步完成您嘗試做的事情。
Foo <- function(y){
df <- read.csv(
file="G:/Classeur2.csv",
header=TRUE,
colClasses=c(
'numeric',
rep('character',4))
)
##
df[,3:5] <- sapply(3:5, function(X){
df[,X] <- as.numeric(
gsub("Not Available",NA,df[,X])
)
})
##
y.p <- paste("d",y,sep=".")
ypCol <- match(y.p,names(df))
##
minimum <- min(
df[,ypCol],
na.rm=TRUE
)
##
dOut <- df[df[,ypCol]==minimum,"c"]
dOut <- dOut[!is.na(dOut)]
return(dOut)
}
##
Foo(y="y")
## [1] "HOSPITAL SYSTEM"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.