전체 글

주로 백엔드, 클라우드 인프라 주제를 다룹니다
어떠한 집단에 대한 평균 및 빈도등 각 집단의요약을 구할때는 summaries()함수와 group_by()함수를 사용해 준다. summaries()함수와 group_by()함수 또한 데이터 전처리를 위한 함수이므로 dplyr 패키지 안에 내장되어있는 함수이다. 이번에도 동일하게 dplyr패키지와 실습용 데이터를 불러오자. 우선 summaries()함수를 이용하여 보자. 해당 코드는 과학과목의 평균을 구한다음에 Average라는 변수에 저장하여 출력하는 코드이다. mean()함수는 전체 데이터에 대한 평균값을 구하기 위해서 사용된다. summaries()함수는 group_by()함수와 집단별 요약표를 만들때 유용하게 사용된다. group_by()함수에 매개변수로 변수 이름을 넣어주게 되면 해당 변수의 데이..
Q1 : mpg()데이터의 복사본을 만들고 cty와 hwy변수의 값을 더한 합산 연비 변수를 만드시오 Q2 : 앞에서 만든 합산 연비 변수를 2로 나눠 평균 연비 변수를 추가하세요. Q3 : 평균 연비 변수가 가장 높은 자동차 3종의 데이터를 출력하세요 Result
mutate()함수에 대해 알아보자. mutate함수는 파생 변수를 생성할 때 사용하는 함수이다. 동일하게 mutate()함수 또한 데이터 전처리를 위해 사용되는 함수이기 떄문에 dplyr패키지를 호출해 주어야 하며 사용할 테스트 데이터도 호출해 주어야 한다. mutate()함수의 매개변수의 형태는 다음과 같다.(파생변수 이름 = (파생 변수의 값이 될 식)) 예시를 들어서 수학, 과학, 영어의 값을 모두 합친 값 total 이라는 파생변수를 만든다고 가정하자. 그러면 다음과 같이 mutate함수를 작성해 주면 된다. 사진에서 보이다 싶이 세 과목의 데이터를 합친 값에 해당하는 total이라는 변수가 생긴것을 볼 수 있다. 이번에는 두가지 이상의 파생변수를 만든다고 가정하여 보자. 두가지 이상의 변수를 ..
Q : 만약 audi에서 생산한 자동차중에 어떤 자동차 모델의 hwy(고속도로 연비)가 높은지 알아보려고 한다. audi에서 생산한 자동차 중 hwy 1~5위에 해당하는 자동차의 데이터를 출력하시오. A : 1 우선적으로 해당 문제에서 사용된 데이터 셋은 ggplot2 패키지에 저장된 mpg데이터를 사용하였다. 그렇기에 가장 먼저 해야할 일은 ggplot2패키지의 mpg데이터를 데이터 프레임으로 저장해 주는 것이다. 2 그 후 'audi에서 생산한 자동차중' 이라는 조건이 주어졌다. 이말은 즉 제조사가 audi인 데이터만 우선적으로 추출하면 된다는 소리이기 때문에 filter함수로 manufacturer변수의 값이 audi인 값만 추출하도록 한다. 3 manufacturer의 값이 audi인 변수들만 추..
arrange()함수에 대해서 알아보자. arrange()함수의 arrange 자체의 의미는 배열하다 라는 의미가 있다. arrange()함수를 이용해서 오름차순 혹은 내림차순으로 정렬할 수 있다. arrange()함수의 매개변수는 오름차순 및 내림차순할 변수의 이름을 넣어주면 된다. 당연히 앞에서 보았던 filter()와 select()함수와 같이 데이터를 전처리하기 위한 함수이므로 dplyr패키지 안에 내장되어 있는 함수이다. 우선 arrange()함수를 사용하기 위해서 dplyr패키지를 호출하자. 그 후 예시 데이터 프레임을 불러와서 출력해 보자. 만약 여기서 내가 수학점수(math)에 대한 값을 오른차순으로 정렬하고 싶다고 하자. 오름차순이란 가장 낮은 값부터 시작해서 가장 높은 값까지 나타내는것..
갭마인더 데이터 집합에서 만약 내가 연도별 gdpPercap의 평균값을 알아보고 싶다고 하자. 이런 경우에는 연도별, 즉 year의 열로 '그룹화'를 한 다음 gdpPercap열의 평균을 구해주는 순서로 진행하면 된다. 이를 코드로 작성하면 다음과 같다. 처음 보기에는 막상 작성하려 보니 막막한 코드이다. 이 코드의 유도과정을 하나씩 살펴보면 이러한 순서가 나온다. 우선 연도별로 '그룹화'를 시키자. 데이터 프레임을 그룹화 시키기 위해서는 groupby()라는 메소드가 사용된다. groupby()메소드의 parameter으로는 그룹화 하려는 열의 이름이 들어가는데 만약 그룹화할 기준 열이 하나라면 작은따옴표로 묶은 후 작성해 주면 되지만 만약 그룹화 하려는 열의 이름이 2개 이상이 된다면 리스트 형태로 ..
loc과 iloc 속성을 활용하여 보자. 우선 추출할 데이터의 행, 열 지정하는 법부터 알아보자. 행과 열 지정은 행, 열 순서로 지정을 해준다. 이를 코드로 작성하면 (데이터 프레임).loc(혹은 iloc)[[행],[열]] 이 되는것이다. 행과 열 지정하는 여러 경우를 살펴보자 1 . 슬라이싱 구문법 여기서 행 부분에 ':'기호를 작성해 주었는데 이를 해석해 보면 '모든 행 데이터에서' 라고 해석하면 된다. 첫번쨰 사진은 인덱스를 이용하는 loc속성을 사용하였기에 열 지정값에 열의 이름 그대로인 문자열을 작성해 주었다. 반면 두번째 사진에서는 iloc을 이용하였기에 열의 번호(순서에 따른)가 저장된 리스트를 넣어준 것이다. 여기서 반대로 만약 loc속성의 열 지정 부분에 열의 번호가 저장된 리스트를 넣..
R 데이터 분석에서도 그랬듯이 필요한 데이터를 따로 추출해서 사용할 수 있다. 판다스에서는 데이터를 따로 추출하는데 있어서 열로 추출하기, 행으로 추출하기 두가지 방법이 존재한다. 각각의 방법에 대해서 알아보자 1 . 열 단위 데이터 추출하기 열 단위로 데이터를 추출할 때는 대괄호, 열 이름이 사용된다. 열 이름은 작은 따옴표로 묶어준다. 열 단위로 데이터를 출력할때 1개의 열만 추출하면 자료형은 -> 시리즈(series) 2개이상의 열을 추출하면 자료형은 -> 데이터 프레임(Data Frame) 이 된다. 우선 간단히 열 단위로 데이터를 추출해보자. 만약 갭마인더 데이터 집합에서 필자가 country라는 열의 데이터만 추출하고 싶다고 하자 그러면 다음과 같이 코드를 입력해 주면 된다. 형태를 보면 알겠..
판다스는 파이썬의 외부 라이브러리중 하나에 속한다. 하지만 파이썬과 판다스는 같은 자료형이라도 서로 다르게 인식한다. 파이썬과 판다스에서 자료형을 각각 다음과 같이 인식한다. 판다스 자료형 파이썬 자료형 해석 object string 문자열 int 64 int 정수 float 64 float 소수점을 지닌 숫자 dataframe64 datetime 파이썬 표준 라이브러리인 datetime이 반환되는 자료형
데이터를 파이썬 판다스 라이브러리로 분석을 해보자. 우선 우리가 해야할 일은 데이터를 불러오는 것인데, 여기서 불러오는 데이터를 우리는 앞으로 '데이터 집합'이라고 부를 것이다. 우선 예시로 불러올 데이터는 갭마인더(Gapminder)이라는 데이터를 불러올 것이다. 갭마인더 데이터는 제니퍼 브라이언이라는 사람이 연구용도로 만든 데이터라고 한다. 1 . 판다스 라이브러리 호출하기 import pandas라고 호출해도 된다 하지만 코드상에서 판다스를 호출하기 위해 매번 pandas라고 쓰는것은 매우 번거로우니 pd라는 약어로 사용하겠다고 선언하였다. 2 . 갭마인더 데이터 불러오기 갭마인더 데이터 집합을 불러오자. 갭마인더 데이터 집합을 불러오기 위해서는 read_csv()메소드를 사용해 주어야 한다. 첫번..
Python Version : Python 3.7 Library : Pandas Tools : Jupyter Notebook(.ipynb)
자바에서 예시들을 보면 public static void main(String[] args)라고 되어있는 main()함수를 볼 수 있다. 근데 main()이라고만 쓰면 되지 public static은 왜 붙는 것인가? 우선적으로 말하자면 main()함수는 자바에서 꼭 public static 선언을 해주어야한다. 이의 근거는 다음과 같다. 우선적으로 main()함수의 호출은 클래스의 외부로부터의 호출을 받는다. 즉 이 점에서 public선언을 해준다. 그 다음 main()메소드는 인스턴스 생성전에 호출이된다. 이 점에서 static선언을 해준다.(static 선언 성질 -> 인스턴스 정의 전에 호출할 수 있다.) 1234567891011class a { void b(){ System.out.println..
이번에는 select()함수에 대해 알아 보자. select()함수는 데이터 프레임 내에서 일부 변수만 사용하고자 하는 경우에 사용한다. select함수 사용법을 코드로 살펴보자. 이 포스트에서도 필자는 filter()포스팅에서 사용하였던 자료와 동일한 자료를 이용하여 진행하였다. 우선 select()함수는 dplyr 패키지에 있기 때문에 dplyr패키지를 호출하고 나서 예시 데이터 프레임을 생성하자. 예시에서 사용하는 데이터 프레임의 내용은 다음과 같습니다. 만약 필자가 수학 점수에 대한것만 출력하고 싶다고 하자. select()함수의 매개변수로는 '변수명' 이 들어간다. 코드는 다음과 같이 작성해 주면 된다. 해당 코드를 출력해보면 다음과 같이 math변수에 대한 데이터 값만 나오는것을 볼 수 있다...
filter()함수를 이용하여 행을 추출할 때 조건을 넣어줄때 >,=,
데이터를 분석할때는 그냥 Raw Data를 넣는것이 아닌 어느정도 가공을 한 후 데이터 분석을 진행해 주어야 한다. 여기서 가공하는 작업을 우리는 흔히 데이터 전처리(Data Processing)이라고 말한다. 데이터 전처리에는 데이터를 일부만 자르거나 데이터를 합치는 등 다양하게 가공하는 방법이 존재한다. 데이터 전처리를 위해서는 'dplyr'패키지가 이용된다. dplyr패키지는 데이터 전처리 과정에 많이 쓰이는 패키지이다. dplyr패키지 안에는 데이터 전처리를 도와주는 다양한 함수가 있다. 우선 오늘은 행을 추출하는 역할을 하는 filter() 함수에 대해 알아볼 것이다. 우선 자신이 활용할 임의의 자료를 준비해보자(.csv 파일로) 그 후 dplyr패키지 호출과 자신이 준비한 자료의 데이터 프레임..
클래스 변수는 클래스 내에 정의된 변수에 static을 선언해 주면 '클래스 변수' 가 된다. 이와 동일한 방법으로 클래스 내의 메소드에 대해서 static선언을 해주면 '클래스 메소드'가 된다. 클래스 메소드와 클래스 변수는 매우 유사하디. 접근 방법도 동일하고 인스턴스 생성 이전에 호출이 가능하며, 어떠한 인스턴스에도 소속되어 있지 않다는 점 또한 동일하다. 클래스 변수의 특징은 다음과 같았다. 1 . 인스턴스 생성 이전부터 접근이 가능하다. 2 . 어떠한 인스턴스에도 소속되어있지 않다. 클래스 메소드 또한 이와 동일한 특성을 가진다. 우선 예시를 보면서 메소드 호출을 살펴보자. 12345678910111213141516171819202122232425262728293031class clmeth{ p..
인스턴스 멤버에는 인스턴스 변수, 인스턴스 메소드 이 두가지가 존재하였다. 그중 인스턴스 변수는 인스턴스를 생성하게 되면 생성하는 변수를 의미한다. 만약 '클래스 변수' 라고 한다면 이는 당연히 클래스가 생성되면 생성되는 변수를 의미할 것이다. 이번에는 클래스 변수에 대해 살펴보고자 한다. 클래스 내 선언된 변수 앞에 'static'이라는 키워드를 붙이게 되면 '인스턴스 변수'가 아닌 '클래스 변수'가 된다. 예시코드와 결과값을 한번 살펴보자. 12345678910111213141516class clasv { static int a = 0; clasv() { a += 1; System.out.println("인스턴스 총 개수 :" + a); }} class ma{ public static void mai..
Eclipse IDLE로 자바를 하다 보면 다음과 같은 오류가 뜨는 경우가 있다. 이 문제의 해결법은 간단하다. 1 . 상단 메뉴에서 window에서 preference부분에 들어간다. 2 . 그 다음 Run - Launching 부분을 들어가준다. 3 . Launch operation 을 보면 launch the previously launched application부분에 선택되어 있는것을 launch the associated project로 바꿔준 후 적용해준다.
JDK : https://www.oracle.com/technetwork/java/javase/downloads/jdk11-downloads-5066655.html Eclpise : https://www.eclipse.org/downloads/
감기약을 생각해보자. 감기약에는 다음과 같은 효능이 있다. 1 . 기침을 멈추게 해준다2 . 열을 내려주게 해준다3 . 코막힘을 없애준다 이 세가지 효능이 있다고 가정하자. 감기약은 이 세가지 효능을 하나의 '캡슐'안에 담아서 사람들이 이 '캡슐'하나만 먹으면 저 3가지 효능을 볼 수 있게끔 해준다. 자바에서의 캡슐화 또한 알약에서의 캡슐의 원리와 동일하다. 상황, 목적에 따라 캡슐을 만들듯 클래스를 캡슐화 하면 프로그램이 매우 간결해 질 수 있다. 캡슐화를 하지 못하면 프로그램이 복잡해지고 구현 과정이 어려워지기 마련이다. 밑의 예제는 캡슐화에 대한 두가지 경우의 예제이다. 1 . 12345678910111213141516171819202122232425262728293031323334353637383..
우리가 정보, 즉 인스턴스 변수를 은닉하기 위해서는 인스턴스 변수 앞에 private선언을 해주었는데 이러한 키워드를 통틀어서 우리는 접근 수준 지시자(Access - Level - Modifier)라고 한다. 접근 수준 지시자가 하는 역할은 말 그대로 접근 허용 수준을 결정할 때 사용된다. 접근 수준 지시자에는 4가지 종류가 있다 1 . public2 . protected3 . private4 . default 그렇다면 접근 수준 지시자는 아무데서나 쓸수 있을까? 아니다. 접근 수준 지시자를 선언할 수 있는 두가지 유형이 있다 1 . 클래스 : public, default만 선언 가능 2 . 인스턴스 변수와 메소드 : public default protected private 모두 선언 가능 우선 클래..
자바에서의 '정보'란 '인스턴스 변수'를 의미한다. 현재 포스팅의 제목의 정보 은닉을 다시 해석해 보면 즉 인스턴스 변수 은닉이라고 재 해석할 수 있는데, 그러면 왜 우리가 이 '정보'라는 것을 숨겨야 하는 것일까? 간단한 예제코드를 해석해 보자. 1234567891011121314151617181920212223242526272829303132333435363738394041424344//흔히 자바에서 말하는 '정보' 는 인스턴스 변수를 의미한다.class Circle { final double pi = 3.14; int rad = 0; public Circle(int r) { rad = r; setrad(r); } public void setrad(int r) { if(r
태그를 통한 이미지 링크를 만들때는 하나의 링크만 이미지에 걸수있는게 아닌 여러개의 링크를 이미지에 걸 수 있다. 이말은 즉 사진에서 위치에 따라 서로 다른 링크가 열리게 한다는 것을 의미한다. 이러한 것을 이미지 맵이라고 하는데 주로 이메일에서 많이 쓰인다. 이미지 맵 생성을 위해서는 태그와 태그가 사용되는데, 태그는 '이미지 맵'을 만드는 역할을하고 태그는 이미지 맵으로 사용할 이미지에 링크영역을 정해주기 위해 사용된다.태그 안에는 이미지 맵의 이름을 설정해 주기 위한 속성인 name을 작성해 준다. name 속성은 일반적인 태그에서 id속성과 비슷한 역할을 한다. 태그에는 다음과 같은 속성들이 존재한다. alt : 대체 텍스트를 지정한다. 태그의 alt와 동일한 기능.coords : 링크로 사용할 ..
우리는 태그와 href속성을 외부 사이트로 링크를 걸 수 있다. 1깃허브 링크cs 다음과 같은 예시라고 치면 href에 작성한 링크로 태그에 둘러져 있는 '깃허브 링크'를 클릭하게 되면 해당 링크로 들어가게 된다. 이러한 방식은 1이라는 사이트가 2라는 사이트로 링크를 하는 일반적인 링크 방법이다. 하지만 이러한 방식 말고 1이라는 사이트 안에서 링크를 걸 수 있는 방법도 있다. 이러한 방법을 앵커(Anchor)방식이라고 한다.앵커 방식은 페이지가 긴 웹 문서에서 특정 요소를 클릭하면 해당 위치로 한번에 이동하는 방식을 의미한다. 앵커 기능을 사용하기 위해서는 이동하고 싶은 위치마다 id속성을 이용해서 앵커를 만들고 각각다른 이름을 지정해야 한다. 그 다음 붙여놓은 앵커 이름들은 링크를 만들때 처럼 태그..
우리가 흔히 자바에서 생성자 개념을 배울 때 이러한 사실이 되게 중요하게 강조된다. 1 . 인스턴스 생성의 마지막 단계는 생성자 호출이다.2 . 어떠한 이유로든 생성자 호출이 생략된 인스턴스는 인스턴스가 아니다. 하지만 이 두가지 사실을 알게되면 의구심이 들 수 도 있다. 12345678910111213141516171819202122232425262728293031323334class banka { int balance = 0; public int deposit(int a) { balance += a; return balance; } public int withdraw(int a) { balance -= a; return balance; } public int balancechek() { System...
Java의 정수형 자료형 중에는 Long 자료형이 있다. 한가지의 예시를 들어보자. 12345class consta{ public static void main(String[] args){ long a = 3098309284209;}}Colored by Color Scriptercs 다음과 같이 long형 자료형 변수 a에 임의의 숫자를 넣었다고 하자. 그 다음 표준 출력문으로 a를 출력하려고 하면 값이 너무 크다는 문구와 함께 오류가 나오는 것을 볼 수 있다. 충분히 long자료형에 들어갈 수있는 크기의 숫자이다. 하지만 왜 들어가 지지 않을까? 자바에서는 Long형 정수의 표현 방법은 별도로 제공되지 않는다. long형 정수를 써야하는 다음과 같은 경우에는 컴파일러가 알아서 이를 long형으로 인식하..
Java에서의 정수 자료형은 다음과 같다. byte, short, int long. 변수 선언시 이 네가지를 모두 하여도 된다. 하나의 예시를 들어보자. 나는 short형 자료형인 p, i라는 정수형 변수를 선언하고 short형 자료형인 result 변수에 p,i변수의 값을 합친것의 결과를 넣었다. 그 후 출력을 하면 오류가 나는것을 볼 수 있다. 왜그럴까? 그 이유는 자바는 기본적으로 정수형 연산을 int형으로만 진행하기 때문이다. 이말은 즉슨 위의 상황에서 p, i를 short형으로 선언한것은 딱히 상관이 없다. 하지만 result에는 결론적으로 p,i를 더했다는 '연산값'이 들어가는데, 이 연산하는 과정에서 자바는 자동으로 형변환을 하여 값을 넣는다. 결론적으로 두 변수를 더한 연산값은 int형, ..
1 . Java에서는 기본 정수 계산 최소 단위가 int형이다. 정수의 저장은 short, byte로도 가능하지만 정수의 계산은 최소 int형으로 계산된다. 2 . Java에서 char형은 무조건 유니코드를 기반으로 문자를 처리한다. 문자를 char형 변수에 저장할 때 실제로 저장되는것은 해당 문자의 유니코드값이다.
일단 함수에 대해 간략히 알아보자. 우리는 자바스크립트에서 var을 통해 변수를 생성한다. 변수 안에는 '데이터' 는 들어갈 수 있지만 '코드' 는 들어갈 수 없다. 함수를 이용하면 메모리에 코드를 저장하였다가 자신이 원할때 해당 함수를 호출해서 사용할 수 있다. 함수에 코드를 저장한것을 '함수 정의문'이라고 명칭한다. 변수를 선언할 때는 var을 썼듯이 함수를 선언할 때는 fucntion을 통해 선언을 해준다.자바스크립트의 함수에는 두 가지 유형이 존재한다. -일반 함수 : 일반적인 함수 선언법 - function + 함수명() + {코드} 12fuction 함수명(){}cs -익명함수 : 일반함수와 달리 함수를 참조변수 안에 넣은것을 볼 수 있다. 참조변수가 곧 함수명이 되는것이다. 12var var..
1 . Derived Variable(파생변수) 만약 시험성적이라는 데이터가 있다고 해보자. 해당 데이터를 나는 .csv파일 형식으로 데이터 프레임을 저장할 것이며 해당 데이터 프레임의 변수로는 반(class),수학(math),영어(english),평균(averge)가 들어가야 된다고 하자. 우선 여기서 우리가 눈여겨봐야할것은 '평균'이라는 것이다. 여기서 예시로 든 데이터 프레임에서의 평균은 (수학점수) + (영어점수) / (과목수) 를 해주면 된다. 왜 내가 평균을 눈여겨봐야 하나 라는거에 대해 생각해보자. 해당 내용을 생각해 보면서 우선적으로 평균 변수를 제외한 데이터 프레임을 생성하고 출력해보자. 다음과 같이 변수 3개, 행이 8개인 데이터 프레임을 생성해 주었다. 자, 이제 왜 평균 변수에 대해..
Hoplin
Hoplin의 개발일기