0
numで指定されたランキングを持つ各状態の病院を含む 2列のデータフレームを返す関数を記述したいと思います。ラプルforループの代わりに
Rankallには、結果の名前(結果)と病院のランク (num)の2つの引数が必要です。この関数は、outcome-of-care-measures.csvファイルを読み込み、numで指定されたランキングを持つ各状態の病院を含む2列のデータフレーム を返します。
rankall <- function(outcome, num = "best") {
## Read outcome data
## Check that state and outcome are valid
## For each state, find the hospital of the given rank
## Return a data frame with the hospital names and the
## (abbreviated) state name
}
head(rankall("heart attack", 20), 10)
hospital state
AK <NA> AK
AL D W MCMILLAN MEMORIAL HOSPITAL AL
AR ARKANSAS METHODIST MEDICAL CENTER AR
4
AZ JOHN C LINCOLN DEER VALLEY HOSPITAL AZ
CA SHERMAN OAKS HOSPITAL CA
CO SKY RIDGE MEDICAL CENTER CO
CT MIDSTATE MEDICAL CENTER CT
DC <NA> DC
DE <NA> DE
FL SOUTH FLORIDA BAPTIST HOSPITAL FL
My機能が正しく動作しますが、最後のステップ(2列のデータフレームをフォーマットする)私は、次のループによって作られた:
new_data <- vector()
for(i in sort(unique(d$State))){
new_data <- rbind(new_data,cbind(d$Hospital.Name[which(d$State == i)][num],i))
}
new_data <- as.data.frame(new_data)
ことが可能であること、それは正しいですが、私は知っていますlapply
機能によって同じループをコーディングする
私の試みは間違っている:
lapply(d,function(x) x <-rbind(x,d$Hospital.Name[which(d$State == i)][num]))
どうすれば修正できますか?
'num'は何ですか?小さな再現可能な例を表示してください – akrun
@akrunが追加されました。もう一度それを確認してください。 –
私はこのcoursera excersiceの目的は 'split'と' lapply'関数を使うことだと思います。 – Wietze314