본문 바로가기
반응형

데이터프레임13

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 데이터프레임 인덱싱을 파라미터로 접근하기 데이터프레임의 인덱싱 방법은 크게 두가지가 있습니다. $를 사용하는 방법과 [ ]을 사용하는 방법입니다. 물론 함께 사용할 수도 있습니다. 둘의 차이를 간단히 알아봅시다. 먼저 데이터프레임을 하나 만들어봅시다. > 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 데이터프레임 열 이름 바꾸기 #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.
반응형