테이블을 데이터 프레임으로 변환하는 방법
나는 이것을 가지고 R에 테이블을 가지고있다 str()
:
table [1:3, 1:4] 0.166 0.319 0.457 0.261 0.248 ...
- attr(*, "dimnames")=List of 2
..$ x: chr [1:3] "Metro >=1 million" "Metro <1 million" "Non-Metro Counties"
..$ y: chr [1:4] "q1" "q2" "q3" "q4"
인쇄 할 때 다음과 같이 보입니다.
y
x q1 q2 q3 q4
Metro >=1 million 0.1663567 0.2612212 0.2670441 0.3053781
Metro <1 million 0.3192857 0.2480012 0.2341030 0.1986102
Non-Metro Counties 0.4570341 0.2044960 0.2121102 0.1263597
나는 제거 할 x
및 y
및 데이터 프레임으로 변환이 정확히 (세 개의 행, 네 개의 열) 위의 동일하지만,없는 외모 x
나 y
. 을 사용 as.data.frame(mytable)
하면 대신 이것을 얻습니다.
x y Freq
1 Metro >=1 million q1 0.1663567
2 Metro <1 million q1 0.3192857
3 Non-Metro Counties q1 0.4570341
4 Metro >=1 million q2 0.2612212
5 Metro <1 million q2 0.2480012
6 Non-Metro Counties q2 0.2044960
7 Metro >=1 million q3 0.2670441
8 Metro <1 million q3 0.2341030
9 Non-Metro Counties q3 0.2121102
10 Metro >=1 million q4 0.3053781
11 Metro <1 million q4 0.1986102
12 Non-Metro Counties q4 0.1263597
아마도 기본적으로 테이블이 데이터 프레임과 어떻게 관련되는지 이해하지 못합니다.
나는 이미 알아 냈습니다.
as.data.frame.matrix(mytable)
내가 필요한 것을 수행합니다-분명히 데이터 프레임으로 적절하게 변환하려면 테이블을 행렬로 변환해야합니다. Computational Ecology 블로그에서 우발성 테이블에 대한 as.data.frame.matrix () 함수에 대한 자세한 내용을 찾았습니다 .
짧은 대답 : as.data.frame.matrix(mytable)
@Victor Van Hee이 제안한대로을 사용 합니다.
긴 대답 : 반환 하더라도 함수에 as.data.frame(mytable)
의해 생성 된 우발성 테이블에서는 작동하지 않을 수 있습니다 . 여전히 테이블을 형식 으로 녹 입니다.table()
is.matrix(your_table)
TRUE
factor1 factor2 factori counts
예:
> freq_t = table(cyl = mtcars$cyl, gear = mtcars$gear)
> freq_t
gear
cyl 3 4 5
4 1 8 2
6 2 4 1
8 12 0 2
> is.matrix(freq_t)
[1] TRUE
> as.data.frame(freq_t)
cyl gear Freq
1 4 3 1
2 6 3 2
3 8 3 12
4 4 4 8
5 6 4 4
6 8 4 0
7 4 5 2
8 6 5 1
9 8 5 2
> as.data.frame.matrix(freq_t)
3 4 5
4 1 8 2
6 2 4 1
8 12 0 2
이 경우 열 이름이 숫자이기 때문에 결과가 다양하지만 내가 사용한 또 다른 방법은 data.frame(rbind(mytable))
입니다. @XX의 예제를 사용하여 :
> freq_t = table(cyl = mtcars$cyl, gear = mtcars$gear)
> freq_t
gear
cyl 3 4 5
4 1 8 2
6 2 4 1
8 12 0 2
> data.frame(rbind(freq_t))
X3 X4 X5
4 1 8 2
6 2 4 1
8 12 0 2
열 이름이 숫자로 시작하지 않으면 X
앞에 숫자 가 추가되지 않습니다.
tidyverse를 사용하는 경우
as_data_frame(table(myvector))
티블 을 얻는 것 (즉, 기본 클래스에서 약간의 변형이있는 데이터 프레임)
참고 URL : https://stackoverflow.com/questions/10758961/how-to-convert-a-table-to-a-data-frame
'IT박스' 카테고리의 다른 글
XML보다 JSON을 선호하는시기 (0) | 2020.06.14 |
---|---|
폴더 대 폴더 (또는 폴더 ')의 의미 (0) | 2020.06.14 |
IntelliJ IDEA가 인터페이스에서 Java로 클래스 구현으로 이동 (0) | 2020.06.14 |
이 설치에서 프로젝트 유형을 지원하지 않습니다 (0) | 2020.06.14 |
선택적 인수를 사용하여 Python 함수를 작성하는 방법 (0) | 2020.06.14 |