2013-06-05 2 views
0

은 내가 as.data.frame(table(something_to_count))을 사용하고, 같은 결과를 얻을 :R에서 레벨 번호를 얻는 방법은 무엇입니까?

Var1 Freq 
1  20 2970 
2  30 1349 
3  40 322 
4  50 1009 

가 난 그냥 $Var1 값을 싶지만 d[1,]$Var1 또는 d[1,1]를 작성하는 경우, 난 항상 이런 것들을 얻을 :

1] 20 
305 Levels: 20 30 40 50 60 70 80 90 100 110 120 130 150 160 170 190 200 ... 4120 

그리고 때를 I 값을 출력하려고하면 항상 20이 아닌 1이됩니다. 그리고 as.number()도 1을 반환 할 수 있습니다. 행의 ID를 가져 오는 대신 문자 그대로 Var1 값을 가져올 수 있습니까? 또한 출력이 레벨 숫자 일 때? 뭐가 잘못 되었 니?

+3

그것은 하나의 요소입니다. 당신은'as.numeric (as.character (d [1,] $ Var1))'을 사용할 수 있습니다. 그러나 데이터에 숫자가 아닌 것을 가지고 있기 때문에 그것이 요인이라고 생각합니다. –

+0

@TylerRinker 멋진 남자, 이것은 실제로 작동합니다. 내가 CSV에서 내 데이터를 덤프하고, 사전에 청소하지만, 네, 아마도 일부 NA 값이 아닌 숫자로 만들 것 같아요. –

+1

@ YitongZhou 어쩌면'stringsAsFactors = FALSE'를'read.csv'에 설정해야합니다. – agstudy

답변

2

클래스 "테이블"의 객체에 대한 as.data.frame 방법에 table는 요소로하고 숫자 계산으로 만 마지막 열 (다른 "한계 라벨"컬럼과 함께) 첫 번째 열을 반환합니다. 도움말 페이지를 참조하십시오 ?table에 대해 값 섹션. R-FAQ를 사용하기를 권장하는 Tyler의 추천 as.numeric(as.character(.)) 변환 전략은 "표준 R"입니다.

0

기능 table는 콘솔에 factor (유형 table에 인수를 켜고 당신이 선을 볼 수 있기 때문이다 a <- factor(a, exclude=exclude).

단지 타일러의 결과를 변환하기 위해 무엇을 제안하는 것입니다 가장 좋은 해결책 data.frame

+1

'테이블'은 그 값을 요인으로 만들지 않았습니다. 그것은 일반적으로 "matrix"클래스에서 상속 한 "table"클래스의 객체를 반환합니다. 우리가 바라는 코드는 테이블 객체의 여백의 이름과 빈을 만드는 것입니다. –

+0

오 ~ 알겠습니다. 따라서 테이블의'names'는 코드를 통해 생성되었지만 궁극적으로'class' 문자로 생성 된 후'as.data.frame'은 기본적으로 'factor'로 변환됩니다. –

+0

오른쪽. 계산식 항목이 숫자 인 동안 행렬 형 테이블 객체의 희미한 이름은 테이블이 병합되었을 때를 고려하여 변환 될 것으로 예상하고 문서화 될 수 있습니다. –

관련 문제