2017-11-25 7 views
1

この関数では、文字値を出力として与えるだけですが、read.csvがcolClassesのデフォルト値をとるときは、文字値の出力が追加されます。 colClasses = "character"を指定しても、そうでない場合は、私の関数がうまく動作するのはなぜですか?read.csv関数のcolClassesの効果

top <- function(state, outcome) { 
     a <- read.csv("outcome-of-care-measures.csv") 
     if (outcome == "heart attack") { 
      data <- a[a[[7]]==state,] 
      x <- suppressWarnings(as.numeric(data[[11]])) 
      y <- min(x, na.rm = TRUE) 
      index <- which(x == y) 
      z <- data[index,2] 
      z1 <- sort(z) 
     print(z1[1]) 
     } 
}  

(レベルについての望ましくない情報を有する)出力が

> top("TX", "heart attack") 
[1] CYPRESS FAIRBANKS MEDICAL CENTER 
4510 Levels: ABBEVILLE AREA MEDICAL CENTER ... ZUNI COMPREHENSIVE COMMUNITY HEALTH CENTER 
+1

print(as.character(z1[1]))

  • 使用を使用する割り当て方向*コースは明らか '使用する状態stringsAsFactors = FALSE'で 'read.csv()'でデータを読み込みます。また、あなたはインターネット上で 'best()'関数の完全なバージョンを投稿してCoursera Honor Codeに違反しています。 –

  • +0

    私はコード全体のわずかな部分しか投稿していません。それにもかかわらず、私はあなたの懸念を理解しており、剽窃が起こらないように機能の名前を変更しました。誰かがこれを理解する唯一の方法は、_R Programming_からです。あなたのコメントを読んで – s0ulr3aper07

    答えて

    3

    要因(データ・タイプRは、カテゴリ変数を格納するために使用する)それらと共に、それらの可能なレベルを運び、そしてこれらはデフォルトで印刷されています。さまざまなソリューションがあります:

    • colClassesあなたが示唆したようにデータを読むとき。
    • 使用stringsAsFactors=FALSE
    • 通常どおりファイルを読み込む、次にコーセラにジョンズ・ホプキンス* Rプログラミングにおけるプログラミング割り当て3 print(z1[1],max.levels=0)