반응형

r 24

[R] separate_longer_delim 함수 (구분자로 된 변수 처리하기)

separate_longer_delim 함수 (구분자로 된 변수 처리하기) 1. 구분자(콤마, 빈칸 등)로 구분된 데이터셋 아래 그림처럼 데이터셋에 구분자가 포함된 변수들이 있습니다. 이 데이터셋은 각각의 사람이 어떤 과일을 좋아하는지를 나타낸 것입니다. Q) 만약 성별에 따라 어떤 과일을 좋아하는지 빈도를 구하려면? table() 함수를 이용해서 빈도 수를 구할 수 있습니다. 하지만 이 상태에서는 table 함수를 쓰면.. 안됩니다. 왜냐하면 콤마를 포함해서 한 문자열로 인식하기 때문에 각각의 과일 구분이 어렵습니다. 이 형태가 각 과일과 성별에 대한 빈도표입니다. 빈도표를 만들기 위해 데이터셋을 long format으로 만들어주는 과정이 필요합니다. 이 작업을 일일히 하기 어렵습니다. 이 때 꽤 좋은..

[R] seq 함수 (숫자 연속으로 나열하기)

seq 함수(숫자 연속으로 나열하기) 1. seq 함수 seq 함수는 숫자를 연속적으로 생성하기 위한 것입니다. 시작번호와 끝번호를 지정하면 순차적으로 수가 나열되며 by 인자를 통해 간격 조정도 가능합니다. 아래는 seq 함수 사용을 위한 각 인자에 대한 설명입니다. seq( from = # 시작 번호 to = # 끝 번호 by = # 간격 length. out = # 결과값(벡터)의 길이 2. seq 함수 예시 from에 1을 지정하고 to에 5를 지정하면 1부터 5까지의 순열이 생성됩니다. 이 때 by를 생략하면 기본값으로 1이 인식됩니다. 만약 숫자 간격을 1 이 외의 수로 지정하고 싶다면 by 인자에 수를 따로 지정해야 합니다. length.out 인자는 결과값(벡터)의 길이를 지정합니다. 예를..

[R] non-numeric argument to binary operator(이항연산자에 수치가 아닌 인수입니다)

1. non-numeric argument to binary operator(이항연산자에 수치가 아닌 인수입니다) 에러 원인 해당 오류는 숫자형 자료에 다른 형태의 자료를 연산할 때 나오는 오류입니다. R에서는 따옴표를 통해서 문자형을 표현합니다. 즉, "1" 과 1은 다른 유형의 값들입니다. 2. 에러 해결방법 "1" + 1 # "1"은 문자형 자료 Error in "1" * 3 : 이항연산자에 수치가 아닌 인수입니다 1+1 # 모두 숫자형 2 함수를 이용해서 숫자로 바꾸는 것은 as.numeric 함수를 이용해 문자형을 숫자형으로 바꿉니다. #문자형 -> 숫자형 변환 후 연산 as.numeric("1") + 1 2 데이터프레임에서 겉으로 보기에는 숫자형인지 문자형인지 확인할 수는 없습니다. 이 때는 ..

[R] Error in data.frame(..., check.names = FALSE) : arguments imply differing number of rows: 오류 처리

1. Error in data.frame(..., check.names=FALSE) 에러 원인 이 오류의 원인은 데이터프레임을 열별로 병합할 때 일어나는 오류입니다. 즉, 두 데이터프레임의 관측치 개수가 맞지 않기 때문입니다. # 아래처럼 관측치가 4개인 자료를 a에 할당하고 관측치가 5개인 자료를 b에 할당합니다. a

[R] Error in file(file, "r") : 커넥션을 열 수 없습니다(cannot open the connection)

1. Error in file(file, "r") : 커넥션을 열 수 없습니다(cannot open the connection) 원인 파악하기 R로 파일을 불러오려다보면 위와 같은 에러 문구가 나올 때가 있습니다. 이는 현재 설정된 경로에 해당 파일이 존재하지 않거나 또는 디렉토리가 존재하지 않기 때문에 나오는 에러입니다. 이 에러를 해결하기 위해선 아래 사항을 고려합니다. 2. 디렉토리 또는 파일이 실제로 존재하지 않는 경우 위 이미지는 'd'라는 변수에 임의로 잘못된 경로를 할당하여 read.csv 함수로 불러오려는 시도를 하였습니다. 이 때 이 오류를 해결하는 방법은 컴퓨터에 "c:/uu" 경로가 실제로 존재하는지 확인해야 합니다. 또는 실제로 디렉토리가 있지만 불러오려는 파일이 존재하는지를 확인합..

[R] 반복문 사용하기 (for, while, break, next)

[R] 반복문 사용하기 (for, while, break, next) 다른 프로그래밍 언어와 마찬가지로 R에서도 반복문을 사용할 수 있습니다. 문법 자체는 크게 다를 바 없기 때문에 기존에 프로그래밍 언어 경험이 있는 분들은 쉽게 쓸 수 있습니다. 1. for 반복문 1.1. 용법 # data의 값을 x에 할당한 후 문장 수행 for( x in data) { 수행문장 } 1.2. 예시 1~5까지의 수를 print함수를 이용하여 각각 결과를 찍어보겠습니다. 변수 x에 1부터 5까지 각각 할당하면서 print(x) 함수로 각 결과가 나옵니다(변수명은 어떤 걸 써도 상관없음!). # 1부터 5까지 print for(x in 1:5){ print(x) } [1] 1 [1] 2 [1] 3 [1] 4 [1] 5 #..

[R] 쉼표(comma , )로 구분된 데이터 정제하기

데이터처리를 하다보면 쉼표( , )로 구분된 문자열을 볼 수 있습니다. 예를 들어, 아래와 같이 쉼표로 구분된 과일명의 데이터가 있다고 합시다. A, B, C 각 대상자가 가지고 있는 과일 종류의 개수가 몇인지 알고 싶다면 이대로 분석을 하기엔 어렵습니다. 데이터 양이 작다면 하나씩 세도 되지만, 그 양이 많아진다면 난감하겠죠? 목표는 왼쪽에 있는 데이터를 오른쪽으로 바꾸는 것입니다. 보아하니 쉼표로 구분된 형태보다 우측 데이터로 형태로 변형하면 분석하기 쉬워질 것 같습니다. 변형을 하는 방법이 몇 가지 있으니 간단히 소개하겠습니다. 1.데이터 생성 test % melt(id.vars='id') # id.vars 인자에 'id'를 줍니다. # 여기에서 'id'는 test1 데이터의 id라는 변수명입니다...

[R데이터분석] R which 함수 파헤치기

R에서 which함수는 데이터의 인덱스를 반환하는 기능을 합니다. which함수는 다음과 같은 형태로 쓸 수 있습니다. 인자로 논리형 벡터(TRUE 또는 FALSE로 구성된 벡터)를 주고 TRUE인 데이터에 대해 인덱스를 결과값으로 반환합니다. 예1) which 함수는 아래 그림과 같이 TRUE인 데이터에 대한 순서 번호를 반환합니다. > test test [1] TRUE TRUE FALSE FALSE TRUE TRUE FALSE # TRUE가 있는 순서를 반환 > which(test) [1] 1 2 5 6 예2) 어떤 데이터를 2로 나누었을 때 짝수이면 TRUE, 홀수이면 FALSE를 반환하는 논리형태의 벡터를 구성해봅시다. 아래 예제는 1부터 10까지 2로 나누었을 때의 논리형태의 벡터를 구성하는 것..

[R데이터분석] R 특정 문자열을 포함한 변수 선택하기

변수명에서 특정 문자를 포함한 변수를 선택하기 위한 방법에 대해 알아보도록 하겠습니다. 크게 두 가지 방법이 있는데 names 와 grep 함수를 이용한 방법과 dplyr 패키지의 select 함수를 이용하는 방법입니다. 아래와 같은 iris 데이터가 있을 때 "Sepal" 을 포함한 변수를 선택하겠습니다. 1. grep(문자열패턴, 문자벡터, ...) grep함수는 문자벡터의 특정 문자열을 찾아 해당 위치의 인덱스를 반환합니다. value = TRUE 를 추가적인 인자로 입력하면 해당 값을 반환합니다. > char_test 첫번째와 네번째 위치에 있음 > grep('a',char_test) [1] 1 4 # 첫번째와 네번째 위치에 있는 'a' 와 'ab'를 반환 > grep('a',char_test,v..

반응형