본문 바로가기
반응형

분류 전체보기217

[엑셀] 특정 문자(대소문자)가 포함된 셀의 개수 세기 countif() / find() countif()는 조건에 맞는 셀의 갯수를 셀 때 쓰는 함수이며 와일드카드 문자 (*) 의 사용이 가능하다. 예를 들어 다음 중 apple 과 일치하는 셀은 1개 이지만 apple이라는 단어가 들어간(*apple*) 셀은 2개이다. 다른 셀에 들어 있는 문자를 참조로 쓸 때에는 아래와 같이 "*"&셀&"*" 로 표기해 주어야 한다. app이 들어간 셀은 모두 세 개이며 o가 들어간 셀은 두 개이다. countif는 기본적으로 대소문자를 구별하지 않으므로 대소문자의 구분이 중요하다면 다른 방법을 사용해야 한다. 대소문자를 구별하는 find() 함수에서 시작해 보자. find() 함수는 셀에서 특정 문자가 포함된 곳의 위치를 숫자로 반환해 준다. 같은 식을 B5에 적용하면 중간에 a가 있음에도 값을 찾을 .. 2016. 9. 26.
[R.아르] 찾아바꾸기(2) lapply() / if() apply() 함수는 연산을 행 또는 열 단위로 적용해 주는 함수다. 예를 들어 다음과 같은 x에서 우리는 1열의 합을 구할 수 있을 것이고 마찬가지로 2행의 합도 구할 수 있을 것이다. 각 행, 혹은 각 열의 합을 구하려면 어떻게 할까? 이럴 때 apply() 함수를 사용한다. apply(데이터, 행 또는 열, 적용할 함수) 와 같이 적는다. apply() 중간의 '1' 은 행 방향으로 함수를 적용하라는 의미이다. 2는 열 방향으로 함수를 적용한다. 이전에 2016/09/26 - [R] - [R.아르] 찾아바꾸기 gsub() 에서 본 대로 gsub()은 한 번에 한 벡터에만 적용 가능한 한계가 있으므로 gsub()과 apply()를 조합하면 전체 데이터프레임에서 찾아바꾸기를 실행할 수 있다고 추론할 수.. 2016. 9. 26.
[R.아르] 찾아바꾸기 gsub() 엑셀 등 오피스 프로그램에서 Ctrl + H 를 누르면 찾아 바꾸기 기능을 사용할 수 있다. R에서는 gsub() 함수가 찾아바꾸기 기능을 담당한다. (gsub의 sub는 substitute를 의미하며, g는 전역global을 의미한다고 한다.) gsub(찾을 것, 바꿀 것, 열 지정)과 같이 사용하면 된다. 다음과 같은 x가 있다고 하자. 소문자 a를 대문자 A로 바꾸려면 gsub("a", "A", x$string) 과 같이 적어주면 되겠다. 사과를 오렌지로 바꿀 수도 있다. gsub()은 2016/09/06 - [R] - [R.아르] 특정 조건에 맞는 글자(이메일 주소)만 추출하기 에서 등장했던 정규표현식을 지원하므로 이를 응용할 수 있다. '처음'을 의미하는 문자는 ^ '마지막'을 의미하는 문자는 .. 2016. 9. 26.
[R.아르] 원하는 순서로 데이터 정렬하기 order() 2016/09/23 - [R] - [R. 아르] 리스트에 없는 항목만 추출하기 (차집합, setdiff()) 에서 잠시 sort() 함수가 나온 적이 있다. 예를 들어 다음과 같은 z를 순서대로 정렬해야 한다면 sort()를 사용하면 간단하다. 만일 내림차순으로 정렬하고 싶다면 [decreasing=] 옵션을 사용하자. 하지만 다음과 같은 데이터프레임은 sort()로 정렬하기가 난감하다. y$var 를 sort()로 정렬할 수는 있겠지만, y전체가 정렬되지는 않는다. 이럴 때는 order()를 사용한다. order()는 각 요소의 상대적인 순서를 반환한다. order(y$var)를 보자. (1)100 - (6)150 - (2)250 - (9)260 ... 과 같이 값을 순서대로 정렬한 후, 그 값이 원 .. 2016. 9. 26.
[R.아르] R에서 피벗테이블 사용하기 dcast() 피벗테이블의 용도야 다양하겠지만 특히 두 가지 경우에 많이 쓰이는 것 같다. 1) 항목별 합산이 필요한데 countif와 sumif를 사용하기는 귀찮을 때 2) 한 항목은 행, 한 항목은 열로 삼아 펼쳐 보고 싶을 때 두 번째 것부터 먼저 알아보자. 먼저 x를 마련하고 reshape2 라이브러리를 불러온다. 피벗테이블 기능을 하는 함수는 dcast()다. dcast(원 데이터, 행이 될 항목 ~ 열이 될 항목, 값으로 사용할 항목, 결과 형태) 와 같이 적어준다. 우리는 날짜를 행으로 삼고 상품을 열로 삼아 펼칠 것이므로 date ~ product 와 같이 써 주면 되겠다. 그리고 sales 열을 값으로 사용할 것이므로 value.var="sales" 로 입력한다. 원하는 결과를 얻었다. 잠깐, 총합이 .. 2016. 9. 23.
[R. 아르] 리스트에 없는 항목만 추출하기 (차집합, setdiff()) 지난 번 2016/09/08 - [R] - [R.아르] R에서 엑셀의 vlookup() 기능 사용하기 에서 본 merge()는 일종의 '교집합'을 구하는 함수로 생각해도 되겠다. 이번엔 차집합을 구하는 함수를 알아보자. 예를들어 다음과 같은 x, y에서 x에만 있고 y에는 없는 것을 고르려면 setdiff() 함수를 사용하면 된다. 반대로 y에만 있고 x에는 없는 것을 고르려면 순서를 반대로 사용한다. 내친 김에 합집합, 교집합, 부분집합도 알아보자. 합집합은 union() 함수를 사용한다. 사용하는 순서에 따라 원소의 배열이 다르며 자동으로 정렬되지는 않는다. 정렬하려면 sort()를 사용하자. 교집합은 intersect()를 사용한다. 한 집합이 다른 집합의 부분집합인지도 알 수 있다. 예를들어 다음.. 2016. 9. 23.
[R. 아르] 내용 합치기 paste() 엑셀에서는 셀의 내용을 합칠때 다음과 같이 &를 사용한다. 중간에 무언가 넣고 싶다면 큰따옴표로 R에서는 paste() 함수를 사용한다. 다음과 같은 x의 두 열을 합치려면 위와 같이 paste() 를 사용하면 된다. 붙일 때 중간에 무언가 넣고 싶다면 [sep =] 옵션을 사용한다. 중간에 공간도 없이 완전히 붙이고 싶다면 [sep=] 옵션에 ""를 사용한다. 한 벡터 내의 내용을 합치고 싶을 때는 어떻게 할까? 예를 들어 다음과 같은 x$x1을 z처럼 합치려면? 이전의 방법으로는 되지 않는다. 이럴 땐 [collapse =] 옵션을 사용한다. collapse 는 한 벡터 내의 내용도 하나로 붙여준다. 역시 다른 것을 지정하면 사이에 넣어 준다. 2016. 9. 22.
[엑셀] 셀 내용에 큰따옴표 넣기 (표시 형식) [셀 서식] - [표시 형식]을 이용하면 여러가지를 편리하게 적용할 수 있다. 예를들면 다음과 같이 1부터 10을 적은 후 [형식] 에 #월을 적어 주면 모든 셀에 '월'을 붙일 수 있다. #은 숫자를 의미한다. 즉, #월은 숫자 뒤에 "월"을 붙이라는 의미다. 위의 셀 내용이 여전이 '1'인 것에 주목하자. 셀 내용이 1월, 2월... 로 바뀐 것이 아니다. 값은 그대로 1, 2, 3 이나 보이는 방식만 바뀐 것이다. 원 데이터를 건드리지 않고 보이는 방식만 바꾼다는 점에서도 의미가 있다. 글자도 적용 가능하다. 글자는 # 대신 @ 을 쓴다. 원 데이터인 SKY 가 ASKY로 표시되는 것을 알 수 있다. 보다시피 작은따옴표도 자유롭게 넣을 수 있다. 다만 여기에서 안되는 것이 큰따옴표는 표시 형식으로 .. 2016. 9. 22.
[엑셀] 큰 숫자, 휴대폰 번호 그대로 가져오기 여기서 큰 숫자라 함은 15자리 이상의 숫자를 말한다. 왜냐하면 엑셀 도움말에서 친히 15자리 이상의 숫자는 다루지 못한다고 알려주고 있기 때문이다. 시험삼아 123을 10번 입력해 보면 아래와 같이 자동으로 1.23 x 10^29 로 바뀌고, 앞의 15자리 숫자 외에는 모두 0으로 처리하는 것을 볼 수 있다. 그러니 도움말에서 선언한대로 15자리 이상의 숫자를 엑셀로 계산하는 것은 불가능하다. 하지만 엑셀을 꼭 계산 용도로만 사용하는 것은 아닌 바, 때로는 단순히 데이터의 저장을 위해서라도 15자리 이상의 숫자를 엑셀에 기록해야 할 때가 있다. 방법은 간단하다. 텍스트로 처리하면 된다. 셀의 형식을 미리 텍스트로 바꾸어 두고 입력하면 된다. 외부 데이터를 읽어올 때도 마찬가지로, 큰 숫자는 텍스트로 읽.. 2016. 9. 21.
[엑셀] 요일 연속으로 채우기 지난 번 2016/08/29 - [엑셀] - [엑셀] 순서대로 번호 채우기 단축키 / row() 함수 / 알파벳 채우기 의 연장선에서, 요일을 연속으로 채울 때에는 1이 일요일 이라는 것만 기억하면 된다. 일단 다음과 같이 숫자를 채우자. 숫자를 채울 때는 Alt + E + I + S 참고로 Alt는 E를 누를 때까지만 누르고 있고, 후에는 떼도 된다. 이제 마우스 오른쪽 버튼으로 [셀 서식]을 호출한다. 단축키를 사용하고 싶다면 Ctrl + 1 그림과 같이 [표시 형식] - [사용자 지정] - [형식]에 aaa를 입력하면 연속된 요일을 쉽게 입력할 수 있다. 옆으로도 마찬가지. 그림과 같이 Alt + E + I + S 를 이용해 연속된 숫자를 채운 뒤 Ctrl + 1 로 셀 서식을 부르고 aaaa를 입.. 2016. 9. 20.
반응형