2017-11-25 9 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

존스 홉킨스 * R 프로그래밍의 프로그래밍 과제 3 할당 방향을 * 코 세라 코스에 명확하게 상태를 사용하는 데 사용하는 평소와 같이 파일을 읽을 stringsAsFactors = FALSE'를 사용하여 'read.csv()'로 데이터를 읽습니다. 또한 인터넷에서'best()'함수의 완전한 버전을 게시함으로써 Coursera Honor Code를 위반하는 것입니다. –

+0

나는 전체 코드의 아주 작은 부분을 게시 했으므로 코드를 실행하지 않아도됩니다. 그럼에도 불구하고 귀하의 우려를 이해하고 표절이 발생하지 않도록 기능의 이름을 변경했습니다. 누군가가 알게되는 유일한 방법은 _R Programming_에서입니다. 귀하의 의견을 읽는 것입니다. – s0ulr3aper07

답변

3

요인입니다 그들과 함께 그들의 가능한 수준을 수행 (데이터 타입 R은 범주 변수를 저장하는 데 사용),이 기본적으로 인쇄됩니다 . 다양한 솔루션이 있습니다 :

  • colClasses 당신이 제안한대로 데이터를 읽을 때; 사용 stringsAsFactors=FALSE
  • 후`print(as.character(z1[1]))
  • 사용 print(z1[1],max.levels=0)