본문 바로가기
반응형

R강의70

[R] 벡터를 벡터로 거듭제곱하기 [R] 벡터를 벡터로 거듭제곱하기 벡터를 벡터로 거듭제곱해봅시다. > v1=c(1,2,3)> v2=c(1,2,3)> v1^v2[1] 1 4 27 같은 위치의 원소끼리 거듭제곱이 계산됩니다. 2020. 11. 30.
[R] 벡터와 스칼라의 사칙연산 (덧셈,곱셈,뺄셈,나눗셈) [R] 벡터와 스칼라의 사칙연산 (덧셈,곱셈,뺄셈,나눗셈) 벡터와 스칼라의 덧셈과 뺄셈 - 벡터 각원소에 스칼라와의 연산을 적용 > v1=c(1,2,3,4,5)> v1+2[1] 3 4 5 6 7> v1-2[1] -1 0 1 2 3 벡터와 스칼라의 곱셈 - 벡터 각원소에 스칼라와의 연산을 적용 > v1=c(1,2,3,4,5)> v1*2[1] 2 4 6 8 10 벡터와 스칼라의 나눗셈 - 벡터 각원소에 스칼라와의 연산을 적용 > v1=c(1,2,3,4,5)> v1/2[1] 0.5 1.0 1.5 2.0 2.5 2020. 11. 30.
[R] 벡터와 벡터의 사칙연산 (덧셈,곱셈,뺄셈,나눗셈) [R] 벡터와 벡터의 사칙연산 (덧셈,곱셈,뺄셈,나눗셈) 벡터의 덧셈과 뺄셈 - 같은 위치의 원소끼리 연산 수행 > v1=c(1,2,3,4,5)> v2=c(2,3,4,5,6)> v1+v2[1] 3 5 7 9 11> v1-v2[1] -1 -1 -1 -1 -1 벡터의 곱셈 - 같은 위치의 원소끼리 연산 수행 > v1=c(1,2,3)> v2=c(10,20,30)> v1*v2[1] 10 40 90 벡터의 나눗셈 - 같은 위치의 원소끼리 연산 수행 > v1=c(1,2,3)> v2=c(10,20,30)> v1/v2[1] 0.1 0.1 0.1 2020. 11. 30.
[R] 벡터원소 이름으로 인덱싱 [R] 벡터원소 이름으로 인덱싱 벡터원소의 이름을 지정하면 이름으로 인덱싱이 가능합니다. 벡터 원소 이름 지정은 names 함수를 이용합니다. > v1=c(1,2,3)> names(v1)=c("A","B","C")> v1A B C 1 2 3 이름으로 인덱싱 하는 방법은 아래와 같습니다. > v1["A"]A 1 > v1[c("A","C")]A C 1 3 2020. 11. 30.
[R] 벡터의 비교 [R] 벡터의 비교 두 벡터에 비교 연산자를 적용하면 각 원소의 비교 결과를 출력해줍니다. > V1=c(1,2,3)> V2=c(1,2,5)> V1==V2[1] TRUE TRUE FALSE> V1>V2[1] FALSE FALSE FALSE> V1 V1=c(1,2,3)> V2=c(1,2,3,4)> V1==V2[1] TRUE TRUE TRUE FALSEWarning message:In V1 == V2 : longer object length is not a multiple of shorter object length 2020. 11. 30.
R 에서 정의된 모든 변수를 한번에 삭제하는 방법 R 에서 정의된 모든 변수를 한번에 삭제하는 방법 R에서 정의된 모든 변수를 보는 방법은 아래와 같습니다. ls 함수를 이용하면 됩니다. > a=3> b=5> c=7> ls()[1] "a" "b" "c" 변수를 삭제할 때는 rm 함수를 이용합니다. 둘을 함께 사용하면 모든 변수를 삭제할 수 있습니다. > rm(list=ls())> ls()character(0) 2020. 11. 27.
R 에서 정의된 변수를 삭제하는 방법 (rm) R 에서 정의된 변수를 삭제하는 방법 (rm) 정의된 변수를 삭제할 때는 rm 함수를 사용합니다. 아래는 예시입니다. > a=5> rm(a)> aError: object 'a' not found 2020. 11. 27.
R 정의된 모든 변수와 함수 확인하는 방법 (ls) R 정의된 모든 변수와 함수 확인하는 방법 (ls) 사용자가 정의한 모든 변수와 함수를 확인할 때는 ls 함수를 사용합니다. 아래는 예시입니다. > ls()character(0)> a=3> b=5> f=function(x) (x+3)> ls()[1] "a" "b" "f" 2020. 11. 27.
R 패키지 설명 보는 법 R 패키지 설명 보는 법 패키지의 설명을 보는 방법은 아래와 같습니다. help(package = "패키지 이름") 아래는 예시입니다. > help(package="readxl") help 탭의 아래와 같은 내용이 출력됩니다. 2020. 11. 27.
R 함수 예제 보는 법 R 함수 예제 보는 법 함수의 입력값을 확인하는 방법은 아래와 같습니다. example(함수이름) 아래는 예시입니다. > example(mean) mean> x xm c(xm, mean(x, trim = 0.10))[1] 8.75 5.50 2020. 11. 27.
R 함수 입력값 (argument) 보는 법 R 함수 입력값 (argument) 보는 법 함수의 입력값을 확인하는 방법은 아래와 같습니다. args(함수이름) 아래는 예시입니다. > args(mean)function (x, ...) NULL 2020. 11. 27.
R 함수 설명 보는 방법 R 함수 설명 보는 방법 R에서 함수 설명을 보는 방법은 아래와 같습니다. help(함수이름) 아래는 예시입니다. >>> help(mean) help 탭에 아래와 같은 설명이 뜹니다. 2020. 11. 27.
R 커멘드창에서 documentation 여는 법 R 커멘드창에서 documentation 여는 법 help.start() 명령어를 입력하면 help 패널에 아래와 같은 documentation 창이 뜹니다. 2020. 11. 27.
R 커멘드창 단축키 모음 R 커멘드창 단축키 모음 키보드 ↑ : 이전 명령어키보드 ↓ : 다음 명령어Home 키 : 줄의 시작부분으로 이동End 키 : 줄의 끝부분으로 이동Ctrl + L : 커멘드 창에 입력된 코드 전체 삭제 2020. 11. 27.
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 문자열을 변수명으로 사용하는 방법 R을 사용하다 보면 문자열을 변수명으로 사용해야 하는 경우가 종종 발생합니다. 제 경우는 함수나 그래프에 formula 를 입력하는 상황이었습니다. 예를들어 t검정을 한다고 합시다. t.test(y~x,data=mydata) 여기서 x값을 바꿔가면서 for문을 돌리고 싶었습니다. 예를들면 X자리에 P1, P2, P3 를 for문으로 넣고 싶은 상황입니다. x=c("P1","P2","P3) 로 정의하고, for문에 x[i] 로 넣을 경우 문자형으로 인식이 되서 오류가 뜹니다. 이럴 경우 사용하는 함수는 parse와 eval입니다. 아래와 같이 사용합니다. eval(parse(text = x[i])) 쉬운 예를 들면 아래와 같습니다 . > a=3> eval(parse(t.. 2020. 10. 7.
[R기초] 조건에 맞는 원소의 위치를 반환 (which 함수) [R기초] 조건에 맞는 원소의 위치를 반환 (which 함수) 1. 벡터 벡터와 비교연산자를 이용하여 조건을 대입하면, 해당 조건에 만족하는 원소의 위치를 반환합니다. > a=c(1,2,3,1,2,3) > which(a==3)[1] 3 6 > which(a>1)[1] 2 3 5 6 2. 데이터프레임 데이터프레임도 벡터와 원리는 같습니다. arr.ind 옵션을 TRUE로 설정하면 해당 원소의 행의 위치와 열의 위치를 각각 반환합니다. > df=data.frame(c1=c(1,2,3),c2=c(1,1,3),c3=c(1,2,2))> df c1 c2 c31 1 1 12 2 1 23 3 3 2 > which(df==1)[1] 1 4 5 7 > which(df==1,arr.ind=TRUE) row col[1,] 1.. 2020. 10. 5.
[R기초] 특정한 값과 일치하는 경우 TRUE 반환 (%in% 연산자) [R기초] 특정한 값과 일치하는 경우 TRUE 반환 (%in% 연산자) %in% 연산자는 특정 값과 일치하는 경우에는 TRUE, 일치하지 않는 경우 FALSE를 반환하는 연산자입니다. 사용방법은 아래와 같습니다. > a=1:10> a %in% c(1,2,3) [1] TRUE TRUE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE 2020. 10. 5.
[R기초] 모든 문자를 대문자 또는 소문자로 바꿔주는 함수 [R기초] 모든 문자를 대문자 또는 소문자로 바꿔주는 함수 1. 모든 문자를 대문자로 toupper 함수를 사용합니다. > a="hello"> toupper(a)[1] "HELLO" 2. 모든 문자를 소문자로 tolower 함수를 사용합니다. > b="HELLO"> tolower(b)[1] "hello" 2020. 10. 5.
[R기초] 도움말 검색방법 (함수, 패키지 등) [R기초] 도움말 검색방법 (함수, 패키지 등) 1. 함수 도움말 함수에 대한 설명을 보고 싶은 경우 help 함수를 이용합니다. 예를들어 평균을 구해주는 mean 함수의 설명을 보고 싶으면 아래 명령어를 입력합니다. > help(mean) 또는 함수 앞에 물음표를 붙여도 됩니다. > ?mean 2. 패키지 도움말 패키지 도움말도 help 함수를 이용합니다. 다만 package 라는 명시를 해주어야 합니다. 예를들어 dplyr 패키지의 도움말을 보고 싶으면 아래 명령어를 입력합니다. > help(package="dplyr") 2020. 10. 5.
[R기초] 문자열을 특정 기준으로 쪼개기 [R기초] 문자열을 특정 기준으로 쪼개기 strsplit(문자열,쪼개는 기준) > a="This is my apple"> strsplit(a," ")[[1]][1] "This" "is" "my" "apple" 2020. 10. 5.
[R기초] 데이터 생성하기 (rep, seq 함수) [R기초] 데이터 생성하기 (rep, seq 함수) 1. rep 함수 rep는 반복한다는 의미인 repeat의 약어입니다. 두가지 사용법이 있습니다. rep(반복할 변수, times=전체 반복 횟수) times는 생략이 가능합니다. > rep(3,10) [1] 3 3 3 3 3 3 3 3 3 3 다른 방법은 each 옵션을 사용하는 것입니다. rep(반복할 변수, each=각 원소 반복 횟수) > rep(c(1,3),each=3)[1] 1 1 1 3 3 3 2. seq 함수 seq는 수열을 의미하는 sequence의 약어입니다. seq(시작값, 종료값, 간격) > seq(1,10,3)[1] 1 4 7 10 2020. 10. 5.
[R 조건문] While문 [R 조건문] While문 while문은 조건이 만족하지 않을 때까지, 내용을 반복해서 실행하도록 하는 반복문입니다. 아래와 같은 형태로 사용합니다. while(조건) {실행 내용} 예를들어봅시다. i 가 10보다 작은 동안 구문을 실행하도록 하겠습니다. i=1 while(i while(i 2020. 9. 29.
[R] apply 함수를 이용하여 이항 데이터로 변형하기 데이터프레임의 원소들을 한번에 이항데이터로 변경하는 방법입니다. 1) NA 여부에 따른 분류 먼저 데이터프레임을 하나 정의합시다. c1=c(1,2,3,NA,NA)c2=c(NA,NA,2,3,5)c3=c(3,NA,1,NA,6)df=data.frame(c1,c2,c3) > df c1 c2 c31 1 NA 32 2 NA NA3 3 2 14 NA 3 NA5 NA 5 6 NA와 NA가 아닌데이터 둘로 구분할 것입니다. NA인 경우를 FALSE, NA가 아닌 경우를 TRUE로 만들어봅시다. df_lgst=!(is.na(df_lgst)) > df_lgst c1 c2 c3[1,] TRUE FALSE TRUE[2,] TRUE FALSE FALSE[3,] TRUE TRUE TRUE[4,] FALSE TRUE FALSE[5,.. 2020. 9. 28.
[R 기초] 함수를 별도의 스크립트로 읽어오기 [R 기초] 함수를 별도의 스크립트로 읽어오기 함수가 긴 경우 외부 파일에 함수를 정의하고 스크립트에서 읽어오는 방법이 있습니다. 먼저 함수를 정의해야 하는데요. R에서 [File]-[New File]-[R Script] 로 새 창을 열어서 함수를 정의하시고 저장하셔도 되구요. 메모장에다 함수를 쓰고 저장하시고, 확장자만 R로 하시면 됩니다. 저장하실 때 파일 이름과 함수 이름을 동일하게 해주셔야 합니다. 안그러면 error가 발생합니다. 불러오실 때는, working directory에 파일이 있는 경우에는 아래와 같이 불러옵니다. 파일 이름이 my_fun.R 이라고 합시다. source("my_fun.R") 만약 함수가 working directory에 있지 않은 경우, working director.. 2020. 9. 26.
[R기초] apply 함수 (행, 열, 또는 각 원소에 함수를 일괄적용) [R기초] apply 함수 (행, 열, 또는 각 원소에 함수를 일괄적용) 먼저 데이터프레임을 하나 만들어봅시다. > myd=cbind(r1=1:10,r2=101:110,r3=1001:1110)> head(myd) r1 r2 r3[1,] 1 101 1001[2,] 2 102 1002[3,] 3 103 1003[4,] 4 104 1004[5,] 5 105 1005[6,] 6 106 1006 1) 가로 방향 일괄적용 (평균) 가로 방향의 평균을 구해봅시다. 아래와 같은 형식으로 입력합니다. apply(데이터,방향,함수) 방향은 1이 가로방향, 2가 세로방향입니다. > apply(myd,1,mean) [1] 367.6667 368.6667 369.6667 370.6667 371.6667 372.6667 373... 2020. 9. 23.
[R기초] 리스트는 언제 사용할까? [R기초] 리스트는 언제 사용할까? R을 공부하다 보면 자료구조라는 것을 배우게 됩니다. 자료를 담는 그릇인데 아래와 같은 것들이 있습니다. - 벡터- 행렬- 배열- 리스트- 요인- 데이터프레임- 테이블 이들 중 "이건 왜있지?" 라는 생각이 드는 자료구조가 있었습니다. 바로 '리스트'입니다. 지금은 R 초보자는 벗어났다고 생각하는데, 초보 시절에는 리스트의 존재 이유를 알기가 어려웠습니. 따라서 거의 사용하지도 않았습니다. 지금은 없어서는 안될 존재입니다. 오늘은 내가 경험한 리스트의 용도 중 하나를 공유하려고 합니다. 상황을 하나 가정하겠습니다. 10개의 벡터를 만들어야 하는 상황입니다. 10개의 벡터를 만들고 각각의 벡터에 0과 10사이의 임의의 숫자 5개를 넣으려고 합니다. 아래와 같은 코드를 짜.. 2020. 9. 16.
[R 기초] 리스트 인덱싱 하는 방법 [R 기초] 리스트 인덱싱 하는 방법 먼저 리스트를 하나 정의하겠습니다. 벡터 두개와 데이터프레임하나를 넣었습니다. v1=c(1,2,3)v2=c("a","b","c")d1=data.frame(v1,v2) mylist=list(v1,v2,d1) 아래와 같이 생성되었습니다. > mylist[[1]][1] 1 2 3 [[2]][1] "a" "b" "c" [[3]] v1 v21 1 a2 2 b3 3 c 리스트 인덱싱은 크게 세가지가 있는데요. 리스트 자체를 인덱싱하는 방법과, 구성요소에 접근하는 방법과, 구성요소의 원소에 접근하는 방법입니다. 1) 리스트 인덱싱 첫번째 리스트에 접근해보겠습니다. > mylist[1][[1]][1] 1 2 3 이렇게 접근할 경우 자료형은 list가 됩니다. 첫번째 리스트와 두번째.. 2020. 9. 16.
반응형