2010-05-19 1 views
0
> scores=cbind(UNCA.score, A.score, B.score, U.m.A, U.m.B) 

> names(scores)=c('UNCA.scores', 'A.scores', 'B.scores','UNCA.minus.A', 'UNCA.minus.B') 

> names(scores) 
[1] "UNCA.scores" "A.scores"  "B.scores"  "UNCA.minus.A" "UNCA.minus.B" 

> summary(UNCA.scores) 
    X6.69230769230769 
    Min. : 4.154 
    1st Qu.: 7.333 
    Median : 8.308 
    Mean : 8.451 
    3rd Qu.: 9.538 
    Max. :12.000 

> is.numeric(UNCA.scores) 
[1] FALSE 

> is.numeric(scores[,1]) 
[1] TRUE 

내 질문은 UNCA.scores와 점수 [, 1]의 차이점은 무엇입니까? UNCA.scores는 data.frame '점수'의 첫 번째 열이지만 하나는 숫자이고 다른 하나는 그렇지 않기 때문에 같은 것이 아닙니다.R 질문. 숫자 변수와 비 숫자 및 "이름"기능 비교

UNCA.scores가 여기에 레이블 인 경우 어떻게하면 '점수 [, 1]'와 동등 할 수 있습니까?

감사합니다.

+0

'data.frame'의 청크를 게시 할 수 있습니까? 'sapply (점수, 클래스)','sapply (점수, typeof)','typeof (점수)','class (점수)'의 출력은 어떻습니까? 그리고'data.frame'이 첨부되어 있는지 확인하기 위해'search()'경로를 제공하십시오. 많은 일을 망칠 수 있습니다 ... – aL3xa

+1

그리고 언제나 항상 str을 사용합니다 –

답변

1

scores은 data.frame이 아닌 매트릭스입니다. data.frame을 사용하여 cbind이 아닌 data.frame을 만듭니다.

매트릭스의 모든 열은 동일한 유형이며이 경우 cbind을 사용하면 모든 요소를 ​​숫자로 강제 변환합니다.

+1

> 점수 = data.frame (UNCA.score, A.score, B.score, UMA, UMB) > (스코어) > is.numeric (UNCA.score) [1] FALSE 첨부 > is.numeric (점수 [, 1]) [1] 참 – Michael

0

게시 한 코드가 재미있어 보입니다. 코드가 시작될 때 UCNA.scores라는 객체가 아직 없으면 요약 함수에 전달하려고하면 오류가 발생하게됩니다. 왜냐하면 매트릭스 열을 이름으로 참조 할 수 없기 때문입니다. 또 다른 한 가지는 행렬에 이름을 지정하면 열이 아닌 요소의 이름을 지정하는 것입니다. 당신이 만든 결과는 data.frame의 점수를 만들고 그것을 생성 한 직후에 첨부한다면 기대할 수있는 것입니다.

이러한 사항을 제외하고도 문제를 재현 할 수 없습니다. 몇 가지 예제 데이터를 게시하거나 부품 누락이있는 경우 계속 진행할 수 있습니까?