R에서 DataFrame을 바꾸는 방법

Reseo Dataframeeul Bakkuneun Bangbeob



데이터 세트 전치는 분석의 특정 요구 사항을 충족하도록 데이터를 재구성하는 작업 중 하나입니다. 데이터세트 전치에는 데이터세트의 행과 열이 반전되어 전환된 열과 행이 있는 새 데이터세트가 생성됩니다. R은 데이터 세트를 바꾸는 몇 가지 기능을 제공합니다. 이 기사에서는 R의 DataFrames에 대한 다양한 전치 방법을 다룰 것입니다.

예제 1: R에서 T() 함수를 사용하여 DataFrame 전치

t() 함수는 DataFrame을 바꾸는 데 사용되는 R의 내장 함수입니다. 그러나 DataFrame을 행렬로 변환하므로 숫자가 아닌 열은 문자열로 변환됩니다. DataFrame을 바꾸려면 다음 R 스크립트를 고려하십시오.







MyData = data.frame(c1 = c(1, 2, 3, 4, 5),

c2 = c(6, 7, 8, 9, 10),
c3 = c(11, 12, 13, 14, 15))

row.names(MyData) = c('r1','r2','r3','r4','r5')

t(마이데이터)

여기에서 MyData 벡터를 선언하고 여기에 data.frame()을 할당합니다. data.frame() 함수 내에 값이 있는 세 개의 열이 포함된 샘플 데이터를 삽입합니다. 그런 다음 'row.names()' 함수를 사용하고 'MyData' DataFrame의 값에 대한 행 이름을 설정합니다. 마지막으로 t() 함수를 사용하여 'MyData' DataFrame을 바꿉니다.



다음 출력은 원본 DataFrame의 행 이름이 전치된 DataFrame의 열 이름이 되고 원본 DataFrame의 열 이름이 전치에서 손실되는 DataFrame의 전치를 보여줍니다.







예제 2: R에서 Transpose() 함수를 사용하여 DataFrame을 전치

'data.table' 패키지의 transpose() 함수는 DataFrame을 바꾸는 데 사용할 수도 있으며 DataFrame을 반환합니다. 따라서 'data.table'이 R에 설치되어 있는지 확인해야 합니다. 만약 찾을 수 없다면 다음 명령으로 설치할 수 있습니다.

install.packages('데이터.테이블')

이제 'data.table' 패키지를 쉽게 가져와 R의 transpose() 함수에 액세스하여 DataFrame을 바꿀 수 있습니다. DataFrame을 바꾸기 위해 transpose() 함수가 호출되는 다음 R 코드를 고려하십시오.



df <- 데이터.프레임(A = c(1:5),

B = c(6:10),
C = c(11:15))


행.이름(df) <- c('r1', 'r2', 'r3', 'r4', 'r5')

df

여기에서 각 열에는 각각 1에서 5, 6에서 10, 11에서 15까지의 숫자 시퀀스가 ​​포함된 3개의 열과 5개의 행이 있는 'df' DataFrame을 만듭니다. 또한 row.names() 함수를 사용하여 DataFrame 행 이름을 할당합니다. 그런 다음 원본 DataFrame을 콘솔에 인쇄합니다.

원래 DataFrame은 여기 화면에 표시됩니다.

다음으로 DataFrame의 행과 열을 전환하여 원래 'df' DataFrame을 바꿉니다.

라이브러리(데이터.테이블)

df_trans <- 전치(df)

행 이름(df_trans) <- 열 이름(df)

열이름(df_trans) <- 열이름(df)

df_trans

이를 위해 먼저 R에서 테이블 형식 데이터로 작업할 수 있는 도구를 제공하는 'data.table' 라이브러리를 로드합니다. 그런 다음 'data.table' 라이브러리에서 transpose() 함수를 사용합니다. 결과적으로 전치된 DataFrame은 'df_t'라는 새 변수에 할당됩니다. 그런 다음 rownames() 함수를 사용하여 원래 'df' DataFrame의 열 이름을 전치된 'df_trans' DataFrame에 행 이름으로 할당합니다. 그런 다음 원래 'df' DataFrame의 행 이름이 colnames() 함수를 사용하여 전치된 'df_trans' DataFrame에 열 이름으로 할당됩니다.

따라서 원본 DataFrame 전치가 출력에서 ​​달성됩니다. 원래 DataFrame의 해당 셀과 동일한 값을 포함하지만 전위로 인해 위치가 다른 전치된 DataFrame의 각 셀을 나타냅니다.

예제 3: R에서 Tidyr 라이브러리 Gather() 함수를 사용하여 DataFrame 전치

R의 tidyr 패키지를 사용하여 DataFrame을 바꿀 수 있습니다. 이 방법은 DataFrame을 넓은 형식에서 긴 형식으로 변환한 다음 행과 열이 교체된 넓은 형식으로 다시 변환하려는 경우에 유용합니다. 데이터를 변환하고 재구성하는 여러 기능을 제공합니다. 먼저 다음 명령을 사용하여 tidyr 패키지를 다운로드해야 합니다.

install.packages('정리')

다음 R 코드를 살펴보겠습니다. 우리는 이 패키지의 gather() 함수를 사용하여 넓은 DataFrame을 더 길게 바꿉니다.

도서관(정리)

엔 = 10

tidy_df = 데이터.프레임(

ID = c(1:n),
Exam1_Marks = c(73, 219, 86, 192, 99,
188, 72, 35, 91, 165),
Exam2_Marks = c(217, 89, 66, 334, 99,
101, 108, 233, 45, 300),
Exam3_Marks = c(39, 101, 209, 289, 176,
120, 89, 119, 199, 96))

tidy_df

여기서 'wide' DataFrame은 tidyr를 사용하여 'long' DataFrame으로 변환됩니다. 먼저 3개의 열이 있는 'tidy_df' DataFrame을 생성합니다. 각 열에는 10개의 값이 있습니다.

긴 DataFrame은 다음 출력 화면에 표시됩니다.

그런 다음 파이프 연산자 '%>%'를 사용하여 'tidy_df' DataFrame을 gather() 함수에 전달합니다. tidyr의 gather() 함수는 'tidy_df'를 긴 DataFrame으로 변환하는 데 사용됩니다. gather() 함수는 변환에서 생성된 변수 이름을 보유할 새 열을 나타내는 '시험' 이름으로 입력을 받습니다. 'Marks'는 'Exam1_Marks' 및 'Exam2_Marks'를 함께 수집하는 열을 지정합니다.

긴 <- tidy_df %>%

모으다(시험, 성적,
Exam1_Marks:Exam2_Marks)


출력은 이제 세 개의 열이 있는 '긴' 형식이 있는 콘솔에 긴 DataFrame을 표시합니다.

예제 4: R에서 Pivot_Wider() 함수를 사용하여 DataFrame 전치

DataFrame을 바꾸는 데 사용하는 다음 고급 기능은 pivot_wider() 기능입니다. pivot_wider()는 '긴' DataFrame을 '넓은' DataFrame으로 변환할 수 있는 R의 tidyr 패키지의 함수입니다. 이 함수는 다음 R 코드에서 설명하는 세 가지 주요 인수를 사용합니다.

도서관(정리)

df <- 데이터.프레임(

id = c(1, 2, 3, 1, 2, 3),
var = c('v1', 'v1', 'v1', 'v2', 'v2', 'v2'),
값 = c(4, 5, 6, 7, 8, 9)


)

df

여기서는 먼저 library() 함수를 사용하여 tidyr 패키지를 로드합니다. 그런 다음 'df'에 샘플 DataFrame을 설정합니다. 'df' DataFrame에는 그에 따라 서로 다른 값을 포함하는 세 개의 열이 있습니다. 샘플 DataFrame은 다음 출력에서 ​​볼 수 있습니다.

그런 다음 tidyr의 pivot_wider() 함수를 사용하여 'df'를 'df_wide'로 변환합니다.

df_wide <- pivot_wider(df, names_from = var, values_from = val)

df_wide

pivot_wider() 함수는 여기에서 세 개의 인수를 사용합니다. 먼저 'df' DataFrame을 변환해야 합니다. 그런 다음, names_from 인수는 새 변수 이름에 사용할 열 이름을 설정합니다. 마지막으로 values_from 인수는 새 값에 사용할 열 이름을 지정합니다.

다음 출력은 긴 DataFrame을 넓은 DataFrame으로 바꾸는 것을 나타냅니다.

결론

우리는 R에서 DataFrame을 전치하기 위해 다양한 방법을 사용했습니다. 첫 번째 예는 t() 내장 메서드로 설정됩니다. 다른 모든 예제는 DataFrame 전치에 해당 기능을 사용할 수 있도록 가져올 패키지가 필요했습니다. 그러나 사용하는 가장 좋은 방법은 작업 중인 특정 상황과 데이터 구조에 따라 다릅니다.