2013-08-29 4 views
0

데이터 프레임의 각 행을 순환하여 테스트를 수행 한 다음 행의 일부 데이터를 추가하려고합니다. 문제는 열이 팩터 데이터 유형 일 때 행의 정보를 추가 할 때 얻는 결과입니다.출력 R 데이터 프레임 요소

for(i in nrow(test)){ print(test[i,]$name) } 

출력 :

[1] Bowling Green 
129 Levels: Air Force Akron Alabama Arizona Arizona State Arkansas Arkansas State Army Auburn Ball State Baylor Boise State Boston College Bowling Green Buffalo BYU ... Wyoming 

내가 원하는 모든 출력 "볼링 그린"대신 각 레벨을 인쇄하는 것이 분명 보인다.

for(i in nrow(test)){ print(c(factor(test[i,]$name), "one")) } 

출력 :

"61" "one" 
"94" "one" 
그럼 내가 실패 전체 원하는 효과를 얻기 위해 그것을 빌드 할 때 위의 코드는, 원하는 출력을 제공하지만,

for(i in nrow(test)){ print(factor(test[i,]$name)) } 

시도

다른 말로하면, 그것은 나에게 요인의 수를주는 것 같다.

+0

당신은'read.csv' /에서'stringsAsFactors는 = FALSE '를 설정할 수 있습니다 작동하도록 보인다'(당신의 data.frame의 요인을 방지하기 위해 전화를 참조 read.table''? 읽어 보시기 바랍니다. 테이블 '참조). – sgibb

답변

0

나는 질문을 쓰면서 대답. 나는 도움이 될 수 있다면 다른 사람들을 위해서 그것을 떠날 것이라고 생각했다. 사회자가 이것이 나쁜 생각이라면 자유롭게 삭제할 수 있습니다. 해결책은 매우 간단합니다. 나는 요소의 기본 값에 액세스하는 것처럼 보입니다. 필요한 이름은 "레이블"로만 간주되었습니다.

CSV 파일에서 R을 읽을 때 R이 자연스럽게 데이터 프레임을 구성한 경우에도 이름 목록을 요소로 저장하는 것은 의미가 없습니다. 그래서이 일이 잘

test$name<- as.character(test$name) 
+0

데이터 벡터에 이름으로 문자 벡터를 저장하는 것이 이치에 맞지 않는다면 stringAsFactors = FALSE를'read.table'과'dataframe'의 인자로 사용하는 법을 배워야합니다. 'options'을 사용하여 이것을 세계적으로 불가능하게 할 수 있으며 많은 사람들이 그렇게합니다. –