본문 바로가기
반응형

5. 자료구조/6) 데이터프레임 | data.frame()17

R 데이터프레임 원하는 값을 열에 추가하기 내장 데이터인 iris 를 이용하여 데이터프레임을 하나 만들어봅시다. > df=iris[1:5,] > df Sepal.Length Sepal.Width Petal.Length Petal.Width Species 1 5.1 3.5 1.4 0.2 setosa 2 4.9 3.0 1.4 0.2 setosa 3 4.7 3.2 1.3 0.2 setosa 4 4.6 3.1 1.5 0.2 setosa 5 5.0 3.6 1.4 0.2 setosa 열을 하나 추가하고 싶은 상황입니다. 모든 값이 "hi"인 열을 만들고 싶습니다. 아래와 같이 cbind 함수를 이용하면 됩니다. > cbind(df,'hi') Sepal.Length Sepal.Width Petal.Length Petal.Width Species "hi" 1 .. 2022. 11. 25.
[R] 데이터 프레임을 특정 열 기준으로 정렬하기 데이터 프레임을 하나 정의합시다. A=c(5,4,7,6,2,1,3) B=c(1,2,3,4,5,6,7) df=data.frame(A,B) > df A B 1 5 1 2 4 2 3 7 3 4 6 4 5 2 5 6 1 6 7 3 7 A 열을 기준으로 정렬해보겠습니다. order 함수를 이용하여 A열의 행들의 크기 순서를 알아냅니다. > order(df$A) [1] 6 5 7 2 1 4 3 이 순서를 데이터프레임의 행 인덱싱에 사용하면 됩니다. > df[order(df$A),] A B 6 1 6 5 2 5 7 3 7 2 4 2 1 5 1 4 6 4 3 7 3 2022. 4. 2.
[R] 빈 데이터프레임 정의하고 for문으로 행 추가하기 아래는 한가지 예시이고 응용해서 사용하면 됩니다. #빈 데이터프레임을 정의합니다. df1=data.frame() #rbind를 이용하여 추가해줍니다. for (i in 1:10){ C1=i C2=i^2 C3=i^3 C4=i^4 df1=rbind(df1,c(C1,C2,C3,C4)) } #열 이름을 설정합니다. names(df1)=c("i","i^2","i^3","i^4") 아래는 결과입니다. > df1 i i^2 i^3 i^4 1 1 1 1 1 2 2 4 8 16 3 3 9 27 81 4 4 16 64 256 5 5 25 125 625 6 6 36 216 1296 7 7 49 343 2401 8 8 64 512 4096 9 9 81 729 6561 10 10 100 1000 10000 2022. 2. 8.
R 데이터프레임 쉽게 이해하기 사전지식 : R 벡터 데이터프레임은 여러개의 벡터를 이어놓은 것이라고 할 수 있습니다. 각 벡터가 데이터 프레임의 열이 됩니다. 예를 들어봅시다. 벡터를 세개 정의하겠습니다. > vec1=c(1,2,3,4,5) > vec2=c('a','b','c','d','e') > vec3=c(TRUE,TRUE,TRUE,FALSE,FALSE) 데이터 프레임으로 합쳐봅시다. 아래와 같이 data.frame 이라는 함수를 사용하고, 벡터를 콤마로 구분해주시면 됩니다. > df1=data.frame(vec1,vec2,vec3) > df1 vec1 vec2 vec3 1 1 a TRUE 2 2 b TRUE 3 3 c TRUE 4 4 d FALSE 5 5 e FALSE 벡터가 각 열에 들어간 것을 알 수 있습니다. 2021. 10. 18.
[R강의] 데이터프레임을 행렬로 바꾸는 방법 먼저 데이터프레임을 하나 정의합시다. > md=data.frame(C1=c(1,2,3),C2=c(10,20,30)) > md C1 C2 1 1 10 2 2 20 3 3 30 행렬로 바꾸는 함수는 as.matrix 입니다. > md_m=as.matrix(md) > md_m C1 C2 [1,] 1 10 [2,] 2 20 [3,] 3 30 잘 바뀌었는지 확인해봅시다. > class(md_m) [1] "matrix" "array" 2021. 10. 12.
[R기초] 데이터프레임을 벡터로 만드는 방법 데이터프레임을 벡터로 바꿀때는 unlist 함수를 사용합니다. 데이터프레임을 하나 정의합시다. > mydt=data.frame(c1=c(1,2,3),c2=c(10,20,30),c3=c(100,200,300)) > mydt c1 c2 c3 1 1 10 100 2 2 20 200 3 3 30 300 unlist 함수를 사용해봅시다. > myv=unlist(mydt) > myv c11 c12 c13 c21 c22 c23 c31 c32 c33 1 2 3 10 20 30 100 200 300 > str(myv) Named num [1:9] 1 2 3 10 20 30 100 200 300 - attr(*, "names")= chr [1:9] "c11" "c12" "c13" "c21" ... 벡터로 바뀌었습니다. 벡.. 2021. 5. 28.
[R 코딩] 데이터프레임 에서 엑셀스타일, SPSS스타일 데이터 변환 (stack함수) 엑셀과 SPSS에서 통계분석을 할 때 요구되는 데이터 스타일이 다릅니다. 남녀의 키를 비교한다고 할 때, 아래와 같이 각각 데이터를 정리해주어야 합니다. 이때 사용되는 함수가 stack 함수입니다. stack 함수의 사용 엑셀스타일의 데이터프레임을 정의합시다. > df1=data.frame(male=c(177,183,162,166),female=c(172,156,162,166)) > df1 male female 1 177 172 2 183 156 3 162 162 4 166 166 stack 함수를 사용해봅시다. > stack(df1) values ind 1 177 male 2 183 male 3 162 male 4 166 male 5 172 female 6 156 female 7 162 female 8.. 2020. 12. 16.
[R] 데이터프레임 인덱싱을 쉽게 하는 법 (subset 함수) subset 함수를 이용하면 데이터프레임의 인덱싱을 아주 편하게 할 수 있습니다. 아래 데이터를 봅시다. airquality 라는 내장데이터입니다. > head(airquality) Ozone Solar.R Wind Temp Month Day 1 41 190 7.4 67 5 1 2 36 118 8.0 72 5 2 3 12 149 12.6 74 5 3 4 18 313 11.5 62 5 4 5 NA NA 14.3 56 5 5 6 28 NA 14.9 66 5 6 인덱싱을 해봅시다. wind 가 10 이상인 경우만 인덱싱해봅시다. airquality[airquality$Wind>=10,] subset 함수를 이용하면 아래와 같이 인덱싱이 가능합니다. subset(airquality,Wind>=10) subset.. 2020. 12. 15.
R 데이터프레임 인덱싱 벡터로 출력 요약 : 데이터프레임 인덱싱에서 대괄호를 한겹 더 씌우면 문자열인 열의 경우는 'factor'로 숫자인 열의 경우는 'vector'로 출력됨 데이터프레임의 원소를 벡터로 출력하는 방법을 알아봅시다. 데이터프레임을 하나 정의합시다. > df=data.frame(Name=c("marry","tim","kate"),Height=c(163,172,168)) > df Name Height 1 marry 163 2 tim 172 3 kate 168 첫 열에 접근해봅시다. > df[1] Name 1 marry 2 tim 3 kate > class(df[1]) [1] "data.frame" 데이터프레임 형태로 출력합니다. 대괄호를 한겹 더 씌워봅시다. > df[[1]] [1] marry tim kate Levels: .. 2020. 12. 15.
R 데이터프레임 크기 확인하는 방법 (행과열의수) R 데이터프레임 크기 확인하는 방법 (행과열의수) 데이터프레임을 하나 정의합시다. > md=data.frame(name=c("a","b","c"),age=c(11,24,13))> md name age1 a 112 b 243 c 13 행과열의 수를 한번에 출력하려면 dim 함수를 이용하면 됩니다. 앞이 행, 뒤가 열입니다. > dim(md)[1] 3 2 행의 수만 출력하려면 nrow 함수를 이용하면 됩니다. > nrow(md)[1] 3 열의 수만 출력하려면 ncol 함수를 이용하면 됩니다. > ncol(md)[1] 2 2020. 11. 27.
R 데이터프레임 열 방향으로 합치기 R 데이터프레임 열 방향으로 합치기 열 방향을 좌->우 를 의미합니다. 데이터프레임을 행방향으로 합칠 때는 cbind 함수를 사용합니다. 행방향결합을 하기 위한 조건은 데이터프레임의 행의 길이가 같아야한다는 것입니다. 데이터프레임 두개를 정의해봅시다. > data1=data.frame(name=c("KLT","LML","PSK"),age=c(14,16,23))> data1 name age1 KLT 142 LML 163 PSK 23> data2=data.frame(sex=c("F","F","M"),married=c("N","Y","Y"))> data2 sex married1 F N2 F Y3 M Y cbind 함수를 이용하여 하나로 합쳐봅시다. > cbind(data1,data2) name age sex .. 2020. 11. 27.
R 데이터프레임 행 방향으로 합치기 R 데이터프레임 행 방향으로 합치기 행방향은 위->아래 방향을 의미합니다. 데이터프레임을 행방향으로 합칠 때는 rbind 함수를 사용합니다. 행방향결합을 하기 위한 조건은 열이름이 같아야 한다는 것입니다. 데이터프레임 두개를 정의해봅시다. > data1=data.frame(name=c("KLT","LML","PSK"),age=c(14,16,23))> data1 name age1 KLT 142 LML 163 PSK 23> data2=data.frame(name=c("LLT","HTK"),age=c(25,32))> data2 name age1 LLT 252 HTK 32 rbind 함수를 이용하여 하나로 합쳐봅시다. > rbind(data1,data2)name age1 KLT 142 LML 163 PSK 23.. 2020. 11. 27.
R 데이터프레임 인덱싱을 파라미터로 접근하기 R 데이터프레임 인덱싱을 파라미터로 접근하기 데이터프레임의 인덱싱 방법은 크게 두가지가 있습니다. $를 사용하는 방법과 [ ]을 사용하는 방법입니다. 물론 함께 사용할 수도 있습니다. 둘의 차이를 간단히 알아봅시다. 먼저 데이터프레임을 하나 만들어봅시다. > myd=data.frame(A=c(90,84,66,35),B=c(96,46,73,62),C=c(77,57,46,36)) > myd A B C 1 90 96 77 2 84 46 57 3 66 73 46 4 35 62 36 한 반의 학생이 4명인 A,B,C반의 수학점수입니다. $을 이용하여 A반에 접근해봅시다. > myd_A=myd$A > typeof(myd_A) [1] "double" 벡터가 반환됩니다. 이번에는 [ ] 을 이용하여 접근해봅시다. > .. 2020. 4. 28.
R 데이터프레임 행이름 리셋하는 법 R 데이터프레임 행이름 리셋하는 법 먼저 데이터프레임을 하나 정의합시다. a=1:5b=11:15c=101:105 mydata=data.frame(a,b,c) 정의한 데이터프레임은 아래와 같습니다. > mydata a b c1 1 11 1012 2 12 1023 3 13 1034 4 14 1045 5 15 105 이 데이터프레임의 1,3,5행을 mydata2라는 데이터프레임에 입력하겠습니다. mydata2=mydata[c(1,3,5),] 결과는 아래와 같습니다. 행 이름도 1,3,5가 되어 있는 것을 알 수 있습니다. > mydata2 a b c1 1 11 1013 3 13 1035 5 15 105 행 이름을 1,2,3으로 리셋하려면, 아래와 같은 코드를 입력하면 됩니다. rownames(mydata2)=.. 2020. 4. 6.
R 데이터프레임 열별 누락 데이터 개수 확인 R 데이터프레임 열별 누락 데이터 개수 확인 #데이터 정의 data1=c(1,2,3,NA,5) data2=c(NA,2,3,NA,5) data3=c(NA,NA,NA,4,5) #데이터 프레임 정의 my_df=data.frame(data1,data2,data3) > my_df data1 data2 data3 1 1 NA NA 2 2 2 NA 3 3 3 NA 4 NA NA 4 5 5 5 5 #apply 함수를 이용하여 누락데이터 수 계산 #sum 함수 안에 다시 is.na 함수를 적용한 것이라, 아래와 같은 형식 사용 apply(my_df,2,function(x) sum(is.na(x))) > apply(my_df,2,function(x) sum(is.na(x))) data1 data2 data3 1 2 3 2019. 12. 12.
R 데이터프레임에서 원하는 조건의 데이터만 추려내는 방법 R 데이터프레임에서 원하는 조건의 데이터만 추려내는 방법 R내장 데이터셋 중에서 CO2를 사용할 것입니다. 먼저 어떤 데이터인지 살펴봅시다. > head(CO2,5) Plant Type Treatment conc uptake1 Qn1 Quebec nonchilled 95 16.02 Qn1 Quebec nonchilled 175 30.43 Qn1 Quebec nonchilled 250 34.84 Qn1 Quebec nonchilled 350 37.25 Qn1 Quebec nonchilled 500 35.3 각각 어떤 종류의 데이터인지 알아봅시다. > str(CO2)Classes ‘nfnGroupedData’, ‘nfGroupedData’, ‘groupedData’ and 'data.frame':84 obs.. 2019. 11. 28.
R 데이터프레임 행과 열 이름 바꾸기 R 데이터프레임 열 이름 바꾸기 #1. 열 이름 한번에 바꾸기 #데이터프레임 정의my_df=data.frame(c(1,2,3),c("a","b","c"))#names 함수를 이용하여 열 이름 변경names(my_df)=c("num","char") > my_df num char1 1 a2 2 b3 3 c #2. 열별로 이름 바꾸기 #데이터프레임 정의my_df=data.frame(c(1,2,3),c("a","b","c"))#names 함수에 인덱싱을 하여 해당 열 이름 변경names(my_df)[1] my_df num c..a....b....c..1 1 a2 2 b3 3 c #3. 특정 조건에 해당되는 열만 이름 변경 #데이터프레임 정의my_df=data.frame(c(1,2,3),c("a","b","c").. 2019. 11. 28.
반응형