데이터 사이언스 100번의 노크(구조화 데이터 처리편) – R Part 1 (Q1 to Q20)의 해설입니다.
참고(Reference) : 「데이터 사이언티스트 협회 스킬 정의 위원」의 「데이터 사이언스 100번의 노크(구조화 데이터 처리편)」입니다.
처음에
- 먼저 다음 셀을 실행합니다.
- 필요한 라이브러리를 가져오고 데이터베이스에서 데이터를 읽습니다(PostgreSQL).
- 사용할 것으로 예상되는 라이브러리는 다음 셀에서 가져옵니다.
- 사용하려는 다른 라이브러리가 있는 경우 install.packages()를 사용하여 적절하게 설치합니다.
- 이름, 주소 등은 더미 데이터이며 실제 데이터가 아닙니다.
require("RPostgreSQL")
require("tidyr")
require("dplyr")
require("stringr")
require("caret")
require("lubridate")
require("rsample")
require("recipes")
require("themis")
host <- "db"
port <- Sys.getenv()["PG_PORT"]
dbname <- Sys.getenv()["PG_DATABASE"]
user <- Sys.getenv()["PG_USER"]
password <- Sys.getenv()["PG_PASSWORD"]
con <- dbConnect(PostgreSQL(), host=host, port=port, dbname=dbname, user=user, password=password)
df_customer <- dbGetQuery(con,"SELECT * FROM customer")
df_category <- dbGetQuery(con,"SELECT * FROM category")
df_product <- dbGetQuery(con,"SELECT * FROM product")
df_receipt <- dbGetQuery(con,"SELECT * FROM receipt")
df_store <- dbGetQuery(con,"SELECT * FROM store")
df_geocode <- dbGetQuery(con,"SELECT * FROM geocode")
Loading required package: RPostgreSQL Loading required package: DBI Loading required package: tidyr Loading required package: dplyr Attaching package: ‘dplyr’ The following objects are masked from ‘package:stats’: filter, lag The following objects are masked from ‘package:base’: intersect, setdiff, setequal, union Loading required package: stringr Loading required package: caret Loading required package: ggplot2 Loading required package: lattice Loading required package: lubridate Attaching package: ‘lubridate’ The following objects are masked from ‘package:base’: date, intersect, setdiff, union Loading required package: rsample Loading required package: recipes Attaching package: ‘recipes’ The following object is masked from ‘package:stringr’: fixed The following object is masked from ‘package:stats’: step Loading required package: themis Registered S3 methods overwritten by 'themis': method from bake.step_downsample recipes bake.step_upsample recipes prep.step_downsample recipes prep.step_upsample recipes tidy.step_downsample recipes tidy.step_upsample recipes tunable.step_downsample recipes tunable.step_upsample recipes Attaching package: ‘themis’ The following objects are masked from ‘package:recipes’: step_downsample, step_upsample
연습문제
R-001: 영수증 내역 데이터(df_receipt)에서 전체 항목 중 첫 10건을 표시하여 어떤 데이터를 보유하고 있는지 목시으로 확인하라.
head(df_receipt, n = 10)
sales_ymd | sales_epoch | store_cd | receipt_no | receipt_sub_no | customer_id | product_cd | quantity | amount | |
---|---|---|---|---|---|---|---|---|---|
<int> | <int> | <chr> | <int> | <int> | <chr> | <chr> | <int> | <int> | |
1 | 20181103 | 1541203200 | S14006 | 112 | 1 | CS006214000001 | P070305012 | 1 | 158 |
2 | 20181118 | 1542499200 | S13008 | 1132 | 2 | CS008415000097 | P070701017 | 1 | 81 |
3 | 20170712 | 1499817600 | S14028 | 1102 | 1 | CS028414000014 | P060101005 | 1 | 170 |
4 | 20190205 | 1549324800 | S14042 | 1132 | 1 | ZZ000000000000 | P050301001 | 1 | 25 |
5 | 20180821 | 1534809600 | S14025 | 1102 | 2 | CS025415000050 | P060102007 | 1 | 90 |
6 | 20190605 | 1559692800 | S13003 | 1112 | 1 | CS003515000195 | P050102002 | 1 | 138 |
7 | 20181205 | 1543968000 | S14024 | 1102 | 2 | CS024514000042 | P080101005 | 1 | 30 |
8 | 20190922 | 1569110400 | S14040 | 1102 | 1 | CS040415000178 | P070501004 | 1 | 128 |
9 | 20170504 | 1493856000 | S13020 | 1112 | 2 | ZZ000000000000 | P071302010 | 1 | 770 |
10 | 20191010 | 1570665600 | S14027 | 1102 | 1 | CS027514000015 | P071101003 | 1 | 680 |
설명:
head(df_receipt, n = 10)이라는 코드는 df_receipt라는 데이터 프레임의 처음 10개의 행을 표시하는 데 사용된다.
R에서 데이터 프레임은 각 열이 숫자, 문자, 인자 등 서로 다른 데이터 타입을 가질 수 있는 표와 같은 구조입니다. 구조화된 형태로 데이터를 저장하고 조작하기 위해 자주 사용된다.
R의 head() 함수는 데이터 프레임의 첫 몇 줄을 표시하는 데 사용된다. 기본적으로 데이터 프레임의 처음 6행이 표시됩니다. 그러나 n 인수로 표시할 행 수를 지정할 수 있다. 이 경우 n = 10은 df_receipt 데이터 프레임의 처음 10 줄을 표시하는 데 사용됩니다.
따라서 이 코드가 실행되면 출력에 df_receipt 데이터 프레임의 처음 10행이 표시됩니다.
R-002: 영수증 내역 데이터(df_receipt)에서 판매일자(sales_ymd), 고객 아이디(customer_id), 상품코드(product_cd), 판매금액(amount)의 순서로 열을 지정하여 10건씩 표시하라.
head(df_receipt[c("sales_ymd", "customer_id", "product_cd", "amount")], n = 10)
sales_ymd | customer_id | product_cd | amount | |
---|---|---|---|---|
<int> | <chr> | <chr> | <int> | |
1 | 20181103 | CS006214000001 | P070305012 | 158 |
2 | 20181118 | CS008415000097 | P070701017 | 81 |
3 | 20170712 | CS028414000014 | P060101005 | 170 |
4 | 20190205 | ZZ000000000000 | P050301001 | 25 |
5 | 20180821 | CS025415000050 | P060102007 | 90 |
6 | 20190605 | CS003515000195 | P050102002 | 138 |
7 | 20181205 | CS024514000042 | P080101005 | 30 |
8 | 20190922 | CS040415000178 | P070501004 | 128 |
9 | 20170504 | ZZ000000000000 | P071302010 | 770 |
10 | 20191010 | CS027514000015 | P071101003 | 680 |
설명:
head(df_receipt[c("sales_ymd", "customer_id", "product_cd", "amount")], n = 10)이라는 코드는 df_receipt라는 데이터 프레임의 처음 10개의 행을 표시하는 데 사용되지만, "sales_ymd", "customer_id", "product_cd", "amount" 열만 표시합니다. ymd", "customer_id", "product_cd", "amount" 열만 표시한다.
R에서 데이터 프레임은 각 열이 숫자, 문자, 인자 등 서로 다른 데이터 타입을 가질 수 있는 테이블과 같은 구조다. 구조화된 형태로 데이터를 저장하고 조작하기 위해 자주 사용된다.
R의 head() 함수는 데이터 프레임의 첫 몇 줄을 표시하는 데 사용됩니다. 기본적으로 데이터 프레임의 처음 6행이 표시됩니다. 하지만 n 인수를 사용하여 표시할 행 수를 지정할 수 있습니다.
이 경우 df_receipt[c("sales_ymd", "customer_id", "product_cd", "amount")]는 df_receipt 데이터 프레임을 하위 집합으로 만들어 "sales_ymd", "customer_id", "product _cd", "amount" 열만 선택하는 데 사용되며, c() 함수는 열 이름을 벡터로 연결하기 위해 사용된다.
따라서 이 코드를 실행하면 df_receipt 데이터 프레임의 처음 10행이 출력되지만 "sales_ymd", "customer_id", "product_cd", "amount" 열만 표시된다. 이는 큰 데이터 프레임을 다룰 때 열의 하위 집합에만 집중해야 할 때 유용하다.
R-003: 영수증 내역 데이터(df_receipt)에서 매출일자(sales_ymd), 고객 ID(customer_id), 상품코드(product_cd), 매출금액(amount) 순으로 열을 지정하여 10건씩 표시한다. 단, sales_ymdsales_date로 항목명을 변경하면서 추출한다.
head(rename(df_receipt[c("sales_ymd", "customer_id", "product_cd", "amount")], sales_date = sales_ymd), n = 10)
sales_date | customer_id | product_cd | amount | |
---|---|---|---|---|
<int> | <chr> | <chr> | <int> | |
1 | 20181103 | CS006214000001 | P070305012 | 158 |
2 | 20181118 | CS008415000097 | P070701017 | 81 |
3 | 20170712 | CS028414000014 | P060101005 | 170 |
4 | 20190205 | ZZ000000000000 | P050301001 | 25 |
5 | 20180821 | CS025415000050 | P060102007 | 90 |
6 | 20190605 | CS003515000195 | P050102002 | 138 |
7 | 20181205 | CS024514000042 | P080101005 | 30 |
8 | 20190922 | CS040415000178 | P070501004 | 128 |
9 | 20170504 | ZZ000000000000 | P071302010 | 770 |
10 | 20191010 | CS027514000015 | P071101003 | 680 |
설명:
head(rename(df_receipt[c("sales_ymd", "customer_id", "product_cd", "amount")], sales_date = sales_ymd), n = 10)이라는 코드는 df_receipt라는 데이터 프레임 의 처음 10개의 행을 표시하기 위해 사용하는데, "sales_ymd", "customer_id", "product_cd", "amount" 열만 보여주고 "sales_ymd" 열을 "sales_date"로 이름을 바꾸고 있다.
R에서 데이터 프레임은 각 열이 숫자, 문자, 인자 등 서로 다른 데이터 타입을 가질 수 있는 테이블과 같은 구조다. 구조화된 형태로 데이터를 저장하고 조작하기 위해 자주 사용된다.
R의 head() 함수는 데이터 프레임의 처음 몇 줄을 표시하는 데 사용된다. 기본적으로 데이터 프레임의 처음 6행이 표시됩니다. 하지만 인수 n으로 표시할 행 수를 지정할 수 있습니다.
R의 rename() 함수는 데이터 프레임의 열 이름을 변경하는 데 사용됩니다. 이 경우 "sales_ymd"라는 열의 이름을 "sales_date"로 바꾸는 데 사용됩니다.
이 코드에서는 df_receipt[c("sales_ymd", "customer_id", "product_cd", "amount")]를 사용하여 df_receipt 데이터 프레임을 서브셋하여 "sales_ymd", "customer_id", " product_cd", "amount" 열만 선택한다. c() 함수는 열 이름을 벡터로 연결하기 위해 사용된다.
다음으로 rename(data_frame, new_column_name = old_column_name)이라는 구문으로, 하위 집합된 데이터 프레임에 rename() 함수가 적용된다. 그 결과 df_receipt[c("sales_ymd", "customer_id", "product_cd", "amount")]와 동일한 행과 열을 가진 데이터 프레임이 되지만, "sales_ymd" 열은 "sales_date"로 이름이 변경되었습니다.
마지막으로 이름을 바꾼 데이터 프레임에 head() 함수를 적용하여 처음 10개의 행을 표시합니다.
따라서 이 코드를 실행하면 출력에 df_receipt 데이터 프레임의 처음 10행이 표시되지만 "sales_date", "customer_id", "product_cd", "amount" 열만 표시되고 "sales_ymd" 열은 "sales _date"로 변경됩니다.
R-004: 영수증 내역 데이터(df_receipt)에서 판매일(sales_ymd), 고객 ID(customer_id), 상품 코드(product_cd), 판매 금액(amount) 순으로 열을 지정하고, 다음 조건을 만족하는 데이터를 추출하시오.
- 고객 ID(customer_id)가 “CS018205000001”.
df_receipt[c("sales_ymd", "customer_id", "product_cd", "amount")] %>% filter(customer_id == "CS018205000001")
sales_ymd | customer_id | product_cd | amount |
---|---|---|---|
<int> | <chr> | <chr> | <int> |
20180911 | CS018205000001 | P071401012 | 2200 |
20180414 | CS018205000001 | P060104007 | 600 |
20170614 | CS018205000001 | P050206001 | 990 |
20170614 | CS018205000001 | P060702015 | 108 |
20190216 | CS018205000001 | P071005024 | 102 |
20180414 | CS018205000001 | P071101002 | 278 |
20190226 | CS018205000001 | P070902035 | 168 |
20190924 | CS018205000001 | P060805001 | 495 |
20190226 | CS018205000001 | P071401020 | 2200 |
20180911 | CS018205000001 | P071401005 | 1100 |
20190216 | CS018205000001 | P040101002 | 218 |
20190924 | CS018205000001 | P091503001 | 280 |
설명:
df_receipt[c("sales_ymd", "customer_id", "product_cd", "amount")] %>% filter(customer_id == "CS018205000001")라는 코드를 사용하여 df_receipt 데이터 프레임의 의 하위 집합으로 "sales_ymd" 열만 선택합니다." "customer_id", "product_cd", "amount"의 세 개의 컬럼을 가진 데이터 프레임을 만들고 "customer_id" 컬럼이 "CS018205000001"과 같은 행만 포함하도록 필터링합니다.
R에서 데이터 프레임은 테이블과 같은 구조로, 각 컬럼은 숫자, 문자, 인자 등 다양한 데이터 타입을 가질 수 있다. 구조화된 형태로 데이터를 저장하고 조작하기 위해 자주 사용된다.
R의 %>% 연산자를 파이프 연산자라고 하는데, 여러 함수를 연쇄적으로 연결하여 하나의 수식으로 만드는 데 사용된다. 이 예제에서는 df_receipt[c("sales_ymd", "customer_id", "product_cd", "amount")]의 출력을 filter() 함수에 전달하기 위해 사용된다.
R의 filter() 함수는 데이터 프레임에서 특정 조건을 만족하는 행을 선택하기 위해 사용된다. 이 경우 "customer_id" 컬럼이 "CS018205000001"과 같은 행만 포함하도록 데이터 프레임을 필터링하는 데 사용됩니다.
따라서 이 코드를 실행하면 "sales_ymd", "customer_id", "product_cd", "amount" 컬럼만 포함하고 "customer_id" 컬럼이 "CS018205000001"과 동일한 행만 포함하는 데이터 프레임을 출력합니다. 로 출력한다. 이는 큰 데이터 프레임을 분석할 때 특정 조건을 충족하는 행의 하위 집합에만 집중해야 할 때 유용하다.
R-005: 영수증 내역 데이터(df_receipt)에서 판매일(sales_ymd), 고객 ID(customer_id), 상품 코드(product_cd), 판매 금액(amount)의 순서로 열을 지정하고, 아래 조건을 모두 만족하는 데이터를 추출하라.
- 고객 ID(customer_id)가 “CS018205000001”
- 매출 금액(amount)이 1,000 이상
df_receipt[c("sales_ymd", "customer_id", "product_cd", "amount")] %>% filter(customer_id == "CS018205000001" & amount >= 1000)
sales_ymd | customer_id | product_cd | amount |
---|---|---|---|
<int> | <chr> | <chr> | <int> |
20180911 | CS018205000001 | P071401012 | 2200 |
20190226 | CS018205000001 | P071401020 | 2200 |
20180911 | CS018205000001 | P071401005 | 1100 |
설명:
df_receipt[c("sales_ymd", "customer_id", "product_cd", "amount")] %>% filter(customer_id == "CS018205000001" & amount >= 1000) 라는 코드를 사용하여 df_receipt receipt 데이터 프레임을 부분 집합화하여 "sales_ymd" 열만 선택합니다." customer_id", "product_cd", "amount" 세 개의 데이터 프레임을 만들고 "customer_id" 열이 "CS018205000001", "amount" 열이 1000개 이상의 행만 포함하도록 필터링한다.
R에서 데이터 프레임은 테이블과 같은 구조로, 각 열은 숫자, 문자, 인자 등 다양한 데이터 타입을 가질 수 있다. 구조화된 형태로 데이터를 저장하고 조작하는 데 자주 사용된다.
R의 %>% 연산자를 파이프 연산자라고 하는데, 여러 함수를 연쇄적으로 연결하여 하나의 수식으로 만드는 데 사용된다. 이 예제에서는 df_receipt[c("sales_ymd", "customer_id", "product_cd", "amount")]의 출력을 filter() 함수에 전달하기 위해 사용하고 있다.
R의 filter() 함수는 데이터 프레임에서 특정 조건을 만족하는 행을 선택하기 위해 사용된다. 이 경우 "customer_id" 열이 "CS018205000001"과 같고 "amount" 열이 1000개 이상의 행만 포함하도록 데이터 프레임을 필터링하는 데 사용되며, 두 조건을 결합하기 위해 & 연산자가 사용됩니다.
따라서 이 코드를 실행하면 "sales_ymd", "customer_id", "product_cd", "amount" 열만 포함된 데이터 프레임이 출력되며, "customer_id" 열이 "CS018205000001"과 같고 "CS018205000001", "amount" 열이 1000개 이상의 행을 포함하는 데이터 프레임이 출력된다. amount" 컬럼이 1000개 이상인 행만 포함된다. 이는 큰 데이터 프레임을 분석할 때 특정 조건을 충족하는 행의 하위 집합에만 집중해야 할 때 유용하다.
R-006: 영수증 내역 데이터(df_receipt)에서 판매일(sales_ymd), 고객 ID(customer_id), 상품 코드(product_cd), 판매 수량(quantity), 판매 금액(amount) 순으로 열을 지정하고, 다음 조건을 모두 만족하는 데이터를 추출하라. 추출하라.
- 고객 ID(customer_id)가 “CS018205000001”.
- 판매금액(amount)이 1,000 이상 또는 판매수량(quantity)이 5 이상
df_receipt[c("sales_ymd", "customer_id", "product_cd", "quantity", "amount")] %>% filter(customer_id == "CS018205000001" & (amount >= 1000 | quantity >= 5))
sales_ymd | customer_id | product_cd | quantity | amount |
---|---|---|---|---|
<int> | <chr> | <chr> | <int> | <int> |
20180911 | CS018205000001 | P071401012 | 1 | 2200 |
20180414 | CS018205000001 | P060104007 | 6 | 600 |
20170614 | CS018205000001 | P050206001 | 5 | 990 |
20190226 | CS018205000001 | P071401020 | 1 | 2200 |
20180911 | CS018205000001 | P071401005 | 1 | 1100 |
설명:
df_receipt[c("sales_ymd", "customer_id", "product_cd", "quantity", "amount")] %>% filter(customer_id == "CS018205000001" & (amount >= 1000 | quantity >= 5))라는 코드를 사용하여 df_receipt 데이터 프레임을 부분 집합화하여 "sales_ymd", "customer_id", "product_cd" 열만 선택한다." "quantity", "amount", "customer_id" 열이 "CS018205000001"과 같고 "amount" 열이 1000 이상이거나 "quantity" 열이 5 이상인 행만 포함하도록 필터링합니다.
R에서 데이터 프레임은 각 열이 숫자, 문자, 인자 등 서로 다른 데이터 타입을 가질 수 있는 표와 같은 구조이다. 구조화된 형식으로 데이터를 저장하고 조작하기 위해 자주 사용된다.
R의 %>% 연산자를 파이프 연산자라고 하는데, 여러 함수를 연쇄적으로 연결하여 하나의 수식으로 만드는 데 사용된다. 이 예제에서는 df_receipt[c("sales_ymd", "customer_id", "product_cd", "quantity", "amount")]의 출력을 filter() 함수에 전달하기 위해 사용된다.
R의 filter() 함수는 데이터 프레임에서 특정 조건을 만족하는 행을 선택하기 위해 사용된다. 이 경우 "customer_id" 컬럼이 "CS018205000001"과 같고 "amount" 컬럼이 1000 이상 또는 "quantity" 컬럼이 5 이상인 행만 포함하도록 데이터 프레임을 필터링하는 데 사용된다. 에는 & 연산자가, OR 조건을 지정하기 위해서는 | 연산자가 사용된다.
따라서 이 코드를 실행하면 'sales_ymd', 'customer_id', 'product_cd', 'quantity', 'amount' 열만 포함된 데이터 프레임이 출력되며, 'customer_id' 열이 'CS018205000001'과 같고 'cs018205000001', 'product_cd', 'quantity', 'amount' 열이 umount' 열이 1000개 이상 또는 'quantity' 열이 5개 이상인 행만 포함된다. 이는 큰 데이터 프레임을 분석할 때 특정 조건을 충족하는 행의 하위 집합에만 집중해야 할 때 유용하다.
R-007: 영수증 내역 데이터(df_receipt)에서 판매일(sales_ymd), 고객 ID(customer_id), 상품 코드(product_cd), 판매 금액(amount)의 순서로 열을 지정하고, 아래 조건을 모두 만족하는 데이터를 추출하라.
- 고객 ID(customer_id)가 “CS018205000001”
- 매출 금액(amount)이 1,000 이상 2,000 이하
df_receipt[c("sales_ymd", "customer_id", "product_cd", "amount")] %>% filter(customer_id == "CS018205000001" & between(amount, 1000, 2000))
sales_ymd | customer_id | product_cd | amount |
---|---|---|---|
<int> | <chr> | <chr> | <int> |
20180911 | CS018205000001 | P071401005 | 1100 |
설명:
이 코드는 R의 dplyr 패키지를 사용하여 df_receipt라는 데이터 프레임을 조작하고 있습니다. 아래는 코드의 내용입니다.
df_receipt[c("sales_ymd", "customer_id", "product_cd", "amount")]: df_receipt 데이터 프레임을 "sales_ymd", "customer_id", "product_cd", " amount" 컬럼만 포함하도록 서브셋을 설정한다.
%>%: dplyr의 파이프 연산자로, 여러 데이터 조작 함수를 연결할 수 있다.
filter(customer_id == "CS018205000001" & between(amount, 1000, 2000)): 고객 ID가 "CS018205000001"이고 금액이 1000에서 2000 사이의 행만 포함하도록 데이터 프레임을 필터링합니다. 필터링하고 있습니다.
즉, 이 코드는 df_receipt 데이터 프레임을 서브셋하여 "sales_ymd", "customer_id", "product_cd", "amount" 열만 포함하도록 하고, 얻어진 데이터 프레임을 고객 ID가 "CS018205000001"이고 금액이 1000에서 2000까지의 행만 포함하도록 필터링한 것이다.
R-008: 영수증 내역 데이터(df_receipt)에서 판매일(sales_ymd), 고객 ID(customer_id), 상품 코드(product_cd), 판매 금액(amount)의 순서로 열을 지정하고, 아래 조건을 모두 만족하는 데이터를 추출하라.
- 고객 ID(customer_id)가 “CS018205000001”
- 상품코드(product_cd)가 “P071401019” 이외
df_receipt[c("sales_ymd", "customer_id", "product_cd", "amount")] %>% filter(customer_id == "CS018205000001" & product_cd != "P071401019")
sales_ymd | customer_id | product_cd | amount |
---|---|---|---|
<int> | <chr> | <chr> | <int> |
20180911 | CS018205000001 | P071401012 | 2200 |
20180414 | CS018205000001 | P060104007 | 600 |
20170614 | CS018205000001 | P050206001 | 990 |
20170614 | CS018205000001 | P060702015 | 108 |
20190216 | CS018205000001 | P071005024 | 102 |
20180414 | CS018205000001 | P071101002 | 278 |
20190226 | CS018205000001 | P070902035 | 168 |
20190924 | CS018205000001 | P060805001 | 495 |
20190226 | CS018205000001 | P071401020 | 2200 |
20180911 | CS018205000001 | P071401005 | 1100 |
20190216 | CS018205000001 | P040101002 | 218 |
20190924 | CS018205000001 | P091503001 | 280 |
설명:
이 코드는 R의 dplyr 패키지를 사용하여 df_receipt라는 데이터 프레임을 조작하고 있습니다. 아래는 코드의 내용입니다.
df_receipt[c("sales_ymd", "customer_id", "product_cd", "amount")]: df_receipt 데이터 프레임을 "sales_ymd", "customer_id", "product_cd", " amount" 컬럼만 포함하도록 서브셋을 설정한다.
%>%: dplyr의 파이프 연산자로, 여러 데이터 조작 함수를 연결할 수 있다.
filter(customer_id == "CS018205000001" & product_cd ! = "P071401019"): 고객 ID가 "CS018205000001"이고 상품 코드가 "P0714019"와 같지 않은 행만 포함하도록 데이터 프레임을 필터링하고 있다.
즉, 이 코드는 df_receipt 데이터 프레임을 하위 집합화하여 "sales_ymd", "customer_id", "product_cd", "amount" 열만 포함하도록 필터링하여 얻은 데이터 프레임을 고객 ID가 "CS0182050001"이고 상품 코드가 "P0714019"인 상품 코드가 "P0714019"와 같지 않은 행만 포함하도록 필터링하는 것이다.
R-009: 다음 처리에서 출력 결과를 바꾸지 않고 OR을 AND로 다시 작성하시오.
df_store %>% filter(!(prefecture_cd == "13" | floor_area > 900))
df_store %>% filter(prefecture_cd != "13" & floor_area <= 900)
store_cd | store_name | prefecture_cd | prefecture | address | address_kana | tel_no | longitude | latitude | floor_area |
---|---|---|---|---|---|---|---|---|---|
<chr> | <chr> | <chr> | <chr> | <chr> | <chr> | <chr> | <dbl> | <dbl> | <dbl> |
S14046 | 北山田店 | 14 | 神奈川県 | 神奈川県横浜市都筑区北山田一丁目 | カナガワケンヨコハマシツヅキクキタヤマタイッチョウメ | 045-123-4049 | 139.5916 | 35.56189 | 831 |
S14011 | 日吉本町店 | 14 | 神奈川県 | 神奈川県横浜市港北区日吉本町四丁目 | カナガワケンヨコハマシコウホククヒヨシホンチョウヨンチョウメ | 045-123-4033 | 139.6316 | 35.54655 | 890 |
S12013 | 習志野店 | 12 | 千葉県 | 千葉県習志野市芝園一丁目 | チバケンナラシノシシバゾノイッチョウメ | 047-123-4002 | 140.0220 | 35.66122 | 808 |
설명:
이 코드는 R의 dplyr 패키지를 사용하여 df_store라는 데이터 프레임을 조작하고 있습니다. 아래는 코드의 내용입니다.
%>%: dplyr의 파이프 연산자로 여러 데이터 조작 함수를 연결할 수 있다.
filter(prefecture_cd ! = "13" & floor_area <= 900): 현 코드가 "13"이 아니고 바닥 면적이 900 이하인 행만 포함하도록 데이터 프레임을 필터링하고 있다.
즉, 이 코드는 df_store 데이터 프레임을 필터링하여 도도부현 코드가 "13"이 아닌 바닥 면적이 900 이하인 행만 포함하도록 필터링하고 있습니다.
R-010: 매장 데이터(df_store)에서 매장 코드(store_cd)가 “S14″로 시작하는 항목만 전체 추출하여 10개를 표시하라.
head(df_store %>% filter(startsWith(store_cd, "S14")), n = 10)
store_cd | store_name | prefecture_cd | prefecture | address | address_kana | tel_no | longitude | latitude | floor_area | |
---|---|---|---|---|---|---|---|---|---|---|
<chr> | <chr> | <chr> | <chr> | <chr> | <chr> | <chr> | <dbl> | <dbl> | <dbl> | |
1 | S14010 | 菊名店 | 14 | 神奈川県 | 神奈川県横浜市港北区菊名一丁目 | カナガワケンヨコハマシコウホククキクナイッチョウメ | 045-123-4032 | 139.6326 | 35.50049 | 1732 |
2 | S14033 | 阿久和店 | 14 | 神奈川県 | 神奈川県横浜市瀬谷区阿久和西一丁目 | カナガワケンヨコハマシセヤクアクワニシイッチョウメ | 045-123-4043 | 139.4961 | 35.45918 | 1495 |
3 | S14036 | 相模原中央店 | 14 | 神奈川県 | 神奈川県相模原市中央二丁目 | カナガワケンサガミハラシチュウオウニチョウメ | 042-123-4045 | 139.3716 | 35.57327 | 1679 |
4 | S14040 | 長津田店 | 14 | 神奈川県 | 神奈川県横浜市緑区長津田みなみ台五丁目 | カナガワケンヨコハマシミドリクナガツタミナミダイゴチョウメ | 045-123-4046 | 139.4994 | 35.52398 | 1548 |
5 | S14050 | 阿久和西店 | 14 | 神奈川県 | 神奈川県横浜市瀬谷区阿久和西一丁目 | カナガワケンヨコハマシセヤクアクワニシイッチョウメ | 045-123-4053 | 139.4961 | 35.45918 | 1830 |
6 | S14028 | 二ツ橋店 | 14 | 神奈川県 | 神奈川県横浜市瀬谷区二ツ橋町 | カナガワケンヨコハマシセヤクフタツバシチョウ | 045-123-4042 | 139.4963 | 35.46304 | 1574 |
7 | S14012 | 本牧和田店 | 14 | 神奈川県 | 神奈川県横浜市中区本牧和田 | カナガワケンヨコハマシナカクホンモクワダ | 045-123-4034 | 139.6582 | 35.42156 | 1341 |
8 | S14046 | 北山田店 | 14 | 神奈川県 | 神奈川県横浜市都筑区北山田一丁目 | カナガワケンヨコハマシツヅキクキタヤマタイッチョウメ | 045-123-4049 | 139.5916 | 35.56189 | 831 |
9 | S14022 | 逗子店 | 14 | 神奈川県 | 神奈川県逗子市逗子一丁目 | カナガワケンズシシズシイッチョウメ | 046-123-4036 | 139.5789 | 35.29642 | 1838 |
10 | S14011 | 日吉本町店 | 14 | 神奈川県 | 神奈川県横浜市港北区日吉本町四丁目 | カナガワケンヨコハマシコウホククヒヨシホンチョウヨンチョウメ | 045-123-4033 | 139.6316 | 35.54655 | 890 |
설명:
이 코드는 R의 dplyr 패키지를 사용하여 df_store라는 데이터 프레임을 조작하고 있습니다. 아래는 코드의 내용을 설명합니다.
df_store입니다. 이것은 사용 중인 데이터 프레임입니다.
%>%: dplyr의 파이프 연산자로 여러 데이터 조작 함수를 연결할 수 있다.
filter(startsWith(store_cd, "S14")): store_cd 열이 "S14"로 시작하는 행만 포함하도록 데이터 프레임을 필터링하고 있다.
head(. , n = 10): head() 함수를 사용하여 결과 데이터 프레임의 처음 10개의 행을 선택하고 있습니다.
즉, 이 코드는 df_store 데이터 프레임을 필터링하여 store_cd 열이 "S14"로 시작하는 행만 포함하도록 필터링하고 head() 함수를 사용하여 결과 데이터 프레임의 처음 10개의 행을 선택하고 있습니다.
R-011: 고객 데이터(df_customer)에서 고객 ID(customer_id)의 끝자리가 1인 항목만 전체 추출하여 10건을 표시하라.
head(df_customer %>% filter(endsWith(customer_id, "1")), n = 10)
customer_id | customer_name | gender_cd | gender | birth_day | age | postal_cd | address | application_store_cd | application_date | status_cd | |
---|---|---|---|---|---|---|---|---|---|---|---|
<chr> | <chr> | <chr> | <chr> | <date> | <int> | <chr> | <chr> | <chr> | <chr> | <chr> | |
1 | CS037613000071 | 六角 雅彦 | 9 | 不明 | 1952-04-01 | 66 | 136-0076 | 東京都江東区南砂********** | S13037 | 20150414 | 0-00000000-0 |
2 | CS028811000001 | 堀井 かおり | 1 | 女性 | 1933-03-27 | 86 | 245-0016 | 神奈川県横浜市泉区和泉町********** | S14028 | 20160115 | 0-00000000-0 |
3 | CS040412000191 | 川井 郁恵 | 1 | 女性 | 1977-01-05 | 42 | 226-0021 | 神奈川県横浜市緑区北八朔町********** | S14040 | 20151101 | 1-20091025-4 |
4 | CS028314000011 | 小菅 あおい | 1 | 女性 | 1983-11-26 | 35 | 246-0038 | 神奈川県横浜市瀬谷区宮沢********** | S14028 | 20151123 | 1-20080426-5 |
5 | CS039212000051 | 藤島 恵梨香 | 1 | 女性 | 1997-02-03 | 22 | 166-0001 | 東京都杉並区阿佐谷北********** | S13039 | 20171121 | 1-20100215-4 |
6 | CS015412000111 | 松居 奈月 | 1 | 女性 | 1972-10-04 | 46 | 136-0071 | 東京都江東区亀戸********** | S13015 | 20150629 | 0-00000000-0 |
7 | CS004702000041 | 野島 洋 | 0 | 男性 | 1943-08-24 | 75 | 176-0022 | 東京都練馬区向山********** | S13004 | 20170218 | 0-00000000-0 |
8 | CS041515000001 | 栗田 千夏 | 1 | 女性 | 1967-01-02 | 52 | 206-0001 | 東京都多摩市和田********** | S13041 | 20160422 | E-20100803-F |
9 | CS029313000221 | 北条 ひかり | 1 | 女性 | 1987-06-19 | 31 | 279-0011 | 千葉県浦安市美浜********** | S12029 | 20180810 | 0-00000000-0 |
10 | CS034312000071 | 望月 奈央 | 1 | 女性 | 1980-09-20 | 38 | 213-0026 | 神奈川県川崎市高津区久末********** | S14034 | 20160106 | 0-00000000-0 |
설명:
이 코드는 R의 dplyr 패키지를 사용하여 df_customer라는 데이터 프레임을 조작하고 있습니다. 아래는 코드의 내용입니다.
df_customer: df_customer: 사용 중인 데이터 프레임입니다.
dplyr: dplyr의 파이프 연산자이며, 여러 데이터 조작 함수를 연결할 수 있다.
filter(endsWith(customer_id, "1")): customer_id 열의 끝이 "1"인 행만 포함하도록 데이터 프레임을 필터링한다.
head(. , n = 10): head() 함수를 사용하여 결과 데이터 프레임의 처음 10개의 행을 선택하고 있습니다.
즉, 이 코드는 df_customer 데이터 프레임을 필터링하여 customer_id 컬럼이 "1"로 끝나는 행만 포함하도록 필터링하고, head() 함수를 사용하여 결과 데이터 프레임의 처음 10개의 행을 선택하고 있는 것입니다.
R-012: 점포 데이터(df_store)에서 주소(address)에 ‘요코하마시’가 포함된 항목만 모두 표시한다.
df_store %>% filter(grepl("横浜市", address))
store_cd | store_name | prefecture_cd | prefecture | address | address_kana | tel_no | longitude | latitude | floor_area |
---|---|---|---|---|---|---|---|---|---|
<chr> | <chr> | <chr> | <chr> | <chr> | <chr> | <chr> | <dbl> | <dbl> | <dbl> |
S14010 | 菊名店 | 14 | 神奈川県 | 神奈川県横浜市港北区菊名一丁目 | カナガワケンヨコハマシコウホククキクナイッチョウメ | 045-123-4032 | 139.6326 | 35.50049 | 1732 |
S14033 | 阿久和店 | 14 | 神奈川県 | 神奈川県横浜市瀬谷区阿久和西一丁目 | カナガワケンヨコハマシセヤクアクワニシイッチョウメ | 045-123-4043 | 139.4961 | 35.45918 | 1495 |
S14040 | 長津田店 | 14 | 神奈川県 | 神奈川県横浜市緑区長津田みなみ台五丁目 | カナガワケンヨコハマシミドリクナガツタミナミダイゴチョウメ | 045-123-4046 | 139.4994 | 35.52398 | 1548 |
S14050 | 阿久和西店 | 14 | 神奈川県 | 神奈川県横浜市瀬谷区阿久和西一丁目 | カナガワケンヨコハマシセヤクアクワニシイッチョウメ | 045-123-4053 | 139.4961 | 35.45918 | 1830 |
S14028 | 二ツ橋店 | 14 | 神奈川県 | 神奈川県横浜市瀬谷区二ツ橋町 | カナガワケンヨコハマシセヤクフタツバシチョウ | 045-123-4042 | 139.4963 | 35.46304 | 1574 |
S14012 | 本牧和田店 | 14 | 神奈川県 | 神奈川県横浜市中区本牧和田 | カナガワケンヨコハマシナカクホンモクワダ | 045-123-4034 | 139.6582 | 35.42156 | 1341 |
S14046 | 北山田店 | 14 | 神奈川県 | 神奈川県横浜市都筑区北山田一丁目 | カナガワケンヨコハマシツヅキクキタヤマタイッチョウメ | 045-123-4049 | 139.5916 | 35.56189 | 831 |
S14011 | 日吉本町店 | 14 | 神奈川県 | 神奈川県横浜市港北区日吉本町四丁目 | カナガワケンヨコハマシコウホククヒヨシホンチョウヨンチョウメ | 045-123-4033 | 139.6316 | 35.54655 | 890 |
S14048 | 中川中央店 | 14 | 神奈川県 | 神奈川県横浜市都筑区中川中央二丁目 | カナガワケンヨコハマシツヅキクナカガワチュウオウニチョウメ | 045-123-4051 | 139.5758 | 35.54912 | 1657 |
S14042 | 新山下店 | 14 | 神奈川県 | 神奈川県横浜市中区新山下二丁目 | カナガワケンヨコハマシナカクシンヤマシタニチョウメ | 045-123-4047 | 139.6593 | 35.43894 | 1044 |
S14006 | 葛が谷店 | 14 | 神奈川県 | 神奈川県横浜市都筑区葛が谷 | カナガワケンヨコハマシツヅキククズガヤ | 045-123-4031 | 139.5633 | 35.53573 | 1886 |
설명:
이 코드는 R의 dplyr 패키지를 사용하여 df_store라는 데이터 프레임을 조작하고 있습니다. 아래는 코드의 내용을 설명합니다.
df_store입니다. 이것은 사용 중인 데이터 프레임입니다.
%>%: dplyr의 파이프 연산자로 여러 데이터 조작 함수를 연결할 수 있다.
filter(grepl("요코하마시", address)): 주소란에 '요코하마시'라는 문자열이 포함된 행만 포함하도록 데이터 프레임을 필터링하고 있으며, grepl() 함수는 address 열의 각 요소에 '요코하마시'라는 패턴이 있는지 여부를 나타내는 논리 벡터를 반환합니다.
즉, 이 코드는 df_store 데이터 프레임을 필터링하여 주소 열에 "요코하마시"라는 문자열이 포함된 행만 포함하도록 하고 있는 것입니다.
R-013: 고객 데이터(df_customer)에서 상태코드(status_cd)가 알파벳 A~F로 시작하는 데이터를 모두 추출하여 10건을 표시하라.
head(df_customer %>% filter(grepl("^[A-F]", status_cd)), n = 10)
customer_id | customer_name | gender_cd | gender | birth_day | age | postal_cd | address | application_store_cd | application_date | status_cd | |
---|---|---|---|---|---|---|---|---|---|---|---|
<chr> | <chr> | <chr> | <chr> | <date> | <int> | <chr> | <chr> | <chr> | <chr> | <chr> | |
1 | CS031415000172 | 宇多田 貴美子 | 1 | 女性 | 1976-10-04 | 42 | 151-0053 | 東京都渋谷区代々木********** | S13031 | 20150529 | D-20100325-C |
2 | CS015414000103 | 奥野 陽子 | 1 | 女性 | 1977-08-09 | 41 | 136-0073 | 東京都江東区北砂********** | S13015 | 20150722 | B-20100609-B |
3 | CS011215000048 | 芦田 沙耶 | 1 | 女性 | 1992-02-01 | 27 | 223-0062 | 神奈川県横浜市港北区日吉本町********** | S14011 | 20150228 | C-20100421-9 |
4 | CS029415000023 | 梅田 里穂 | 1 | 女性 | 1976-01-17 | 43 | 279-0043 | 千葉県浦安市富士見********** | S12029 | 20150610 | D-20100918-E |
5 | CS035415000029 | 寺沢 真希 | 9 | 不明 | 1977-09-27 | 41 | 158-0096 | 東京都世田谷区玉川台********** | S13035 | 20141220 | F-20101029-F |
6 | CS031415000106 | 宇野 由美子 | 1 | 女性 | 1970-02-26 | 49 | 151-0053 | 東京都渋谷区代々木********** | S13031 | 20150201 | F-20100511-E |
7 | CS029215000025 | 石倉 美帆 | 1 | 女性 | 1993-09-28 | 25 | 279-0022 | 千葉県浦安市今川********** | S12029 | 20150708 | B-20100820-C |
8 | CS033605000005 | 猪股 雄太 | 0 | 男性 | 1955-12-05 | 63 | 246-0031 | 神奈川県横浜市瀬谷区瀬谷********** | S14033 | 20150425 | F-20100917-E |
9 | CS033415000229 | 板垣 菜々美 | 1 | 女性 | 1977-11-07 | 41 | 246-0021 | 神奈川県横浜市瀬谷区二ツ橋町********** | S14033 | 20150712 | F-20100326-E |
10 | CS008415000145 | 黒谷 麻緒 | 1 | 女性 | 1977-06-27 | 41 | 157-0067 | 東京都世田谷区喜多見********** | S13008 | 20150829 | F-20100622-F |
설명:
이 코드는 R의 dplyr 패키지를 사용하여 df_customer라는 데이터 프레임을 조작하고 있습니다. 아래는 코드의 내용입니다.
df_customer: df_customer: 사용 중인 데이터 프레임입니다.
%>%: dplyr의 파이프 연산자이며, 여러 데이터 조작 함수를 연결할 수 있다.
filter(grepl("^[A-F]", status_cd)): status_cd 열이 A, B, C, D, E, F 문자로 시작하는 행만 포함하도록 데이터 프레임을 필터링하고, grepl() 함수는 정규식 "^[A-F]"가 status_cd 열의 각 요소와 일치하는지 여부를 나타냅니다. 의 각 요소와 일치하는지 여부를 나타내는 논리 벡터를 반환한다. 정규 표현식 "^[A-F]"는 A, B, C, D, E 또는 F로 시작하는 모든 문자열과 일치한다.
head(. , n = 10): 이것은 head() 함수를 사용하여 결과 데이터 프레임의 처음 10 줄을 선택합니다.
즉, 이 코드는 df_customer 데이터 프레임을 필터링하여 status_cd 열이 A, B, C, D, E, F로 시작하는 행만 포함하도록 하고 head() 함수를 사용하여 결과 데이터 프레임의 처음 10개의 행을 선택한다.
R-014: 고객 데이터(df_customer)에서 상태코드(status_cd)의 끝자리가 숫자 1~9로 끝나는 데이터를 모두 추출하여 10건을 표시하라.
head(df_customer %>% filter(grepl("[1-9]$", status_cd)), n = 10)
customer_id | customer_name | gender_cd | gender | birth_day | age | postal_cd | address | application_store_cd | application_date | status_cd | |
---|---|---|---|---|---|---|---|---|---|---|---|
<chr> | <chr> | <chr> | <chr> | <date> | <int> | <chr> | <chr> | <chr> | <chr> | <chr> | |
1 | CS001215000145 | 田崎 美紀 | 1 | 女性 | 1995-03-29 | 24 | 144-0055 | 東京都大田区仲六郷********** | S13001 | 20170605 | 6-20090929-2 |
2 | CS033513000180 | 安斎 遥 | 1 | 女性 | 1962-07-11 | 56 | 241-0823 | 神奈川県横浜市旭区善部町********** | S14033 | 20150728 | 6-20080506-5 |
3 | CS011215000048 | 芦田 沙耶 | 1 | 女性 | 1992-02-01 | 27 | 223-0062 | 神奈川県横浜市港北区日吉本町********** | S14011 | 20150228 | C-20100421-9 |
4 | CS040412000191 | 川井 郁恵 | 1 | 女性 | 1977-01-05 | 42 | 226-0021 | 神奈川県横浜市緑区北八朔町********** | S14040 | 20151101 | 1-20091025-4 |
5 | CS009315000023 | 皆川 文世 | 1 | 女性 | 1980-04-15 | 38 | 154-0012 | 東京都世田谷区駒沢********** | S13009 | 20150319 | 5-20080322-1 |
6 | CS015315000033 | 福士 璃奈子 | 1 | 女性 | 1983-03-17 | 36 | 135-0043 | 東京都江東区塩浜********** | S13015 | 20141024 | 4-20080219-3 |
7 | CS023513000066 | 神戸 そら | 1 | 女性 | 1961-12-17 | 57 | 210-0005 | 神奈川県川崎市川崎区東田町********** | S14023 | 20150915 | 5-20100524-9 |
8 | CS035513000134 | 市川 美帆 | 1 | 女性 | 1960-03-27 | 59 | 156-0053 | 東京都世田谷区桜********** | S13035 | 20150227 | 8-20100711-9 |
9 | CS001515000263 | 高松 夏空 | 1 | 女性 | 1962-11-09 | 56 | 144-0051 | 東京都大田区西蒲田********** | S13001 | 20160812 | 1-20100804-1 |
10 | CS040314000027 | 鶴田 きみまろ | 9 | 不明 | 1986-03-26 | 33 | 226-0027 | 神奈川県横浜市緑区長津田********** | S14040 | 20150122 | 2-20080426-4 |
설명:
이 코드는 R의 dplyr 패키지를 사용하여 df_customer라는 데이터 프레임을 조작하고 있습니다. 아래는 코드의 내용입니다.
df_customer: 사용 중인 데이터 프레임입니다.
%>%: dplyr의 파이프 연산자로 여러 데이터 조작 함수를 연결할 수 있다.
filter(grepl("[1-9]$", status_cd)): status_cd 열의 끝이 1-9 숫자로 끝나는 행만 포함하도록 데이터 프레임을 필터링하고, grepl() 함수는 정규 표현식 "[1-9]$"가 status_cd 열의 각 요소와 일치하는지 여부를 나타내는 논리 벡터를 반환한다. 정규 표현식 "[1-9]$"는 1~9로 끝나는 문자열과 일치한다.
head(. , n = 10)을 사용한다. 이것은 head() 함수를 사용하여 결과 데이터 프레임의 처음 10줄을 선택하고 있다.
즉, 이 코드는 df_customer 데이터 프레임을 필터링하여 status_cd 열의 끝이 1-9 숫자로 끝나는 행만 포함하도록 하고 head() 함수를 사용하여 결과 데이터 프레임의 처음 10개의 행을 선택하고 있는 것이다.
R-015: 고객 데이터(df_customer)에서 상태코드(status_cd)의 시작이 알파벳 A~F로 시작하고 끝이 숫자 1~9로 끝나는 데이터를 모두 추출하여 10건을 표시하라.
head(df_customer %>% filter(grepl("^[A-F].*[1-9]$", status_cd)), n = 10)
customer_id | customer_name | gender_cd | gender | birth_day | age | postal_cd | address | application_store_cd | application_date | status_cd | |
---|---|---|---|---|---|---|---|---|---|---|---|
<chr> | <chr> | <chr> | <chr> | <date> | <int> | <chr> | <chr> | <chr> | <chr> | <chr> | |
1 | CS011215000048 | 芦田 沙耶 | 1 | 女性 | 1992-02-01 | 27 | 223-0062 | 神奈川県横浜市港北区日吉本町********** | S14011 | 20150228 | C-20100421-9 |
2 | CS022513000105 | 島村 貴美子 | 1 | 女性 | 1962-03-12 | 57 | 249-0002 | 神奈川県逗子市山の根********** | S14022 | 20150320 | A-20091115-7 |
3 | CS001515000096 | 水野 陽子 | 9 | 不明 | 1960-11-29 | 58 | 144-0053 | 東京都大田区蒲田本町********** | S13001 | 20150614 | A-20100724-7 |
4 | CS013615000053 | 西脇 季衣 | 1 | 女性 | 1953-10-18 | 65 | 261-0026 | 千葉県千葉市美浜区幕張西********** | S12013 | 20150128 | B-20100329-6 |
5 | CS020412000161 | 小宮 薫 | 1 | 女性 | 1974-05-21 | 44 | 174-0042 | 東京都板橋区東坂下********** | S13020 | 20150822 | B-20081021-3 |
6 | CS001215000097 | 竹中 あさみ | 1 | 女性 | 1990-07-25 | 28 | 146-0095 | 東京都大田区多摩川********** | S13001 | 20170315 | A-20100211-2 |
7 | CS035212000007 | 内村 恵梨香 | 1 | 女性 | 1990-12-04 | 28 | 152-0023 | 東京都目黒区八雲********** | S13035 | 20151013 | B-20101018-6 |
8 | CS002515000386 | 野田 コウ | 1 | 女性 | 1963-05-30 | 55 | 185-0013 | 東京都国分寺市西恋ケ窪********** | S13002 | 20160410 | C-20100127-8 |
9 | CS001615000372 | 稲垣 寿々花 | 1 | 女性 | 1956-10-29 | 62 | 144-0035 | 東京都大田区南蒲田********** | S13001 | 20170403 | A-20100104-1 |
10 | CS032512000121 | 松井 知世 | 1 | 女性 | 1962-09-04 | 56 | 210-0011 | 神奈川県川崎市川崎区富士見********** | S13032 | 20150727 | A-20100103-5 |
설명:
이 코드는 R의 dplyr 패키지를 사용하여 df_customer라는 데이터 프레임을 조작하고 있습니다. 아래는 코드의 내용입니다.
df_customer: 사용 중인 데이터 프레임입니다.
%>%: dplyr의 파이프 연산자로 여러 데이터 조작 함수를 연결할 수 있다.
filter(grepl("^[A-F]. *[1-9]$", status_cd)): status_cd 열이 A, B, C, D, E, F 중 하나의 문자로 시작하고 1-9의 숫자로 끝나는 행만 포함하도록 데이터 프레임을 필터링하는 함수로, grepl() 함수는 정규식 "^[A-F]. [1-9]$"가 status_cd 열의 각 요소와 일치하는지 여부를 나타내는 논리 벡터를 반환한다. 정규 표현식 "^[A-F]. [1-9]$"는 문자 A, B, C, D, E, F로 시작하고 0 이상의 임의의 유형이 이어지며 1부터 9까지의 숫자로 끝나는 문자열과 일치한다.
head(. , n = 10): 이것은 head() 함수를 사용하여 결과 데이터 프레임의 처음 10 줄을 선택합니다.
즉, 이 코드는 df_customer 데이터 프레임을 필터링하여 status_cd 열이 A, B, C, D, D, E 또는 F 문자로 시작하고 1-9 숫자로 끝나는 행만 포함하도록 필터링하고 head() 함수를 사용하여 결과 데이터 프레임의 처음 10개의 행을 선택한다. 하게 됩니다.
R-016: 매장 데이터(df_store)에서 전화번호(tel_no)가 3자리-3자리-4자리인 데이터를 모두 표시하라.
df_store %>% filter(grepl("^[0-9]{3}-[0-9]{3}-[0-9]{4}$", tel_no))
store_cd | store_name | prefecture_cd | prefecture | address | address_kana | tel_no | longitude | latitude | floor_area |
---|---|---|---|---|---|---|---|---|---|
<chr> | <chr> | <chr> | <chr> | <chr> | <chr> | <chr> | <dbl> | <dbl> | <dbl> |
S12014 | 千草台店 | 12 | 千葉県 | 千葉県千葉市稲毛区千草台一丁目 | チバケンチバシイナゲクチグサダイイッチョウメ | 043-123-4003 | 140.1180 | 35.63559 | 1698 |
S13002 | 国分寺店 | 13 | 東京都 | 東京都国分寺市本多二丁目 | トウキョウトコクブンジシホンダニチョウメ | 042-123-4008 | 139.4802 | 35.70566 | 1735 |
S14010 | 菊名店 | 14 | 神奈川県 | 神奈川県横浜市港北区菊名一丁目 | カナガワケンヨコハマシコウホククキクナイッチョウメ | 045-123-4032 | 139.6326 | 35.50049 | 1732 |
S14033 | 阿久和店 | 14 | 神奈川県 | 神奈川県横浜市瀬谷区阿久和西一丁目 | カナガワケンヨコハマシセヤクアクワニシイッチョウメ | 045-123-4043 | 139.4961 | 35.45918 | 1495 |
S14036 | 相模原中央店 | 14 | 神奈川県 | 神奈川県相模原市中央二丁目 | カナガワケンサガミハラシチュウオウニチョウメ | 042-123-4045 | 139.3716 | 35.57327 | 1679 |
S14040 | 長津田店 | 14 | 神奈川県 | 神奈川県横浜市緑区長津田みなみ台五丁目 | カナガワケンヨコハマシミドリクナガツタミナミダイゴチョウメ | 045-123-4046 | 139.4994 | 35.52398 | 1548 |
S14050 | 阿久和西店 | 14 | 神奈川県 | 神奈川県横浜市瀬谷区阿久和西一丁目 | カナガワケンヨコハマシセヤクアクワニシイッチョウメ | 045-123-4053 | 139.4961 | 35.45918 | 1830 |
S13052 | 森野店 | 13 | 東京都 | 東京都町田市森野三丁目 | トウキョウトマチダシモリノサンチョウメ | 042-123-4030 | 139.4383 | 35.55293 | 1087 |
S14028 | 二ツ橋店 | 14 | 神奈川県 | 神奈川県横浜市瀬谷区二ツ橋町 | カナガワケンヨコハマシセヤクフタツバシチョウ | 045-123-4042 | 139.4963 | 35.46304 | 1574 |
S14012 | 本牧和田店 | 14 | 神奈川県 | 神奈川県横浜市中区本牧和田 | カナガワケンヨコハマシナカクホンモクワダ | 045-123-4034 | 139.6582 | 35.42156 | 1341 |
S14046 | 北山田店 | 14 | 神奈川県 | 神奈川県横浜市都筑区北山田一丁目 | カナガワケンヨコハマシツヅキクキタヤマタイッチョウメ | 045-123-4049 | 139.5916 | 35.56189 | 831 |
S14022 | 逗子店 | 14 | 神奈川県 | 神奈川県逗子市逗子一丁目 | カナガワケンズシシズシイッチョウメ | 046-123-4036 | 139.5789 | 35.29642 | 1838 |
S14011 | 日吉本町店 | 14 | 神奈川県 | 神奈川県横浜市港北区日吉本町四丁目 | カナガワケンヨコハマシコウホククヒヨシホンチョウヨンチョウメ | 045-123-4033 | 139.6316 | 35.54655 | 890 |
S13016 | 小金井店 | 13 | 東京都 | 東京都小金井市本町一丁目 | トウキョウトコガネイシホンチョウイッチョウメ | 042-123-4015 | 139.5094 | 35.70018 | 1399 |
S14034 | 川崎野川店 | 14 | 神奈川県 | 神奈川県川崎市宮前区野川 | カナガワケンカワサキシミヤマエクノガワ | 044-123-4044 | 139.5998 | 35.57693 | 1318 |
S14048 | 中川中央店 | 14 | 神奈川県 | 神奈川県横浜市都筑区中川中央二丁目 | カナガワケンヨコハマシツヅキクナカガワチュウオウニチョウメ | 045-123-4051 | 139.5758 | 35.54912 | 1657 |
S12007 | 佐倉店 | 12 | 千葉県 | 千葉県佐倉市上志津 | チバケンサクラシカミシヅ | 043-123-4001 | 140.1452 | 35.71872 | 1895 |
S14026 | 辻堂西海岸店 | 14 | 神奈川県 | 神奈川県藤沢市辻堂西海岸二丁目 | カナガワケンフジサワシツジドウニシカイガンニチョウメ | 046-123-4040 | 139.4466 | 35.32464 | 1732 |
S13041 | 八王子店 | 13 | 東京都 | 東京都八王子市大塚 | トウキョウトハチオウジシオオツカ | 042-123-4026 | 139.4235 | 35.63787 | 810 |
S14049 | 川崎大師店 | 14 | 神奈川県 | 神奈川県川崎市川崎区中瀬三丁目 | カナガワケンカワサキシカワサキクナカゼサンチョウメ | 044-123-4052 | 139.7327 | 35.53759 | 962 |
S14023 | 川崎店 | 14 | 神奈川県 | 神奈川県川崎市川崎区本町二丁目 | カナガワケンカワサキシカワサキクホンチョウニチョウメ | 044-123-4037 | 139.7028 | 35.53599 | 1804 |
S13018 | 清瀬店 | 13 | 東京都 | 東京都清瀬市松山一丁目 | トウキョウトキヨセシマツヤマイッチョウメ | 042-123-4017 | 139.5178 | 35.76885 | 1220 |
S14027 | 南藤沢店 | 14 | 神奈川県 | 神奈川県藤沢市南藤沢 | カナガワケンフジサワシミナミフジサワ | 046-123-4041 | 139.4896 | 35.33762 | 1521 |
S14021 | 伊勢原店 | 14 | 神奈川県 | 神奈川県伊勢原市伊勢原四丁目 | カナガワケンイセハラシイセハラヨンチョウメ | 046-123-4035 | 139.3129 | 35.40169 | 962 |
S14047 | 相模原店 | 14 | 神奈川県 | 神奈川県相模原市千代田六丁目 | カナガワケンサガミハラシチヨダロクチョウメ | 042-123-4050 | 139.3748 | 35.55959 | 1047 |
S12013 | 習志野店 | 12 | 千葉県 | 千葉県習志野市芝園一丁目 | チバケンナラシノシシバゾノイッチョウメ | 047-123-4002 | 140.0220 | 35.66122 | 808 |
S14042 | 新山下店 | 14 | 神奈川県 | 神奈川県横浜市中区新山下二丁目 | カナガワケンヨコハマシナカクシンヤマシタニチョウメ | 045-123-4047 | 139.6593 | 35.43894 | 1044 |
S12030 | 八幡店 | 12 | 千葉県 | 千葉県市川市八幡三丁目 | チバケンイチカワシヤワタサンチョウメ | 047-123-4005 | 139.9240 | 35.72318 | 1162 |
S14025 | 大和店 | 14 | 神奈川県 | 神奈川県大和市下和田 | カナガワケンヤマトシシモワダ | 046-123-4039 | 139.4680 | 35.43414 | 1011 |
S14045 | 厚木店 | 14 | 神奈川県 | 神奈川県厚木市中町二丁目 | カナガワケンアツギシナカチョウニチョウメ | 046-123-4048 | 139.3651 | 35.44182 | 980 |
S12029 | 東野店 | 12 | 千葉県 | 千葉県浦安市東野一丁目 | チバケンウラヤスシヒガシノイッチョウメ | 047-123-4004 | 139.8968 | 35.65086 | 1101 |
S12053 | 高洲店 | 12 | 千葉県 | 千葉県浦安市高洲五丁目 | チバケンウラヤスシタカスゴチョウメ | 047-123-4006 | 139.9176 | 35.63755 | 1555 |
S14024 | 三田店 | 14 | 神奈川県 | 神奈川県川崎市多摩区三田四丁目 | カナガワケンカワサキシタマクミタヨンチョウメ | 044-123-4038 | 139.5424 | 35.60770 | 972 |
S14006 | 葛が谷店 | 14 | 神奈川県 | 神奈川県横浜市都筑区葛が谷 | カナガワケンヨコハマシツヅキククズガヤ | 045-123-4031 | 139.5633 | 35.53573 | 1886 |
설명:
이 코드는 R의 dplyr 패키지를 사용하여 df_store라는 데이터 프레임을 조작하고 있습니다. 아래는 코드의 내용을 설명합니다.
df_store : 사용 중인 데이터 프레임입니다.
%>% : dplyr의 파이프 연산자이며, 여러 데이터 조작 함수를 연결할 수 있다.
filter(grepl("^[0-9]{3}-[0-9]{3}-[0-9]{3}-[0-9]{4}$", tel_no)): tel_no 열이 특정 전화번호 형식과 일치하는 행만 포함하도록 데이터 프레임을 필터링하는 함수입니다. -9]{3}-[0-9]{3}-[0-9]{3}-[0-9]{4}$"가 tel_no 열의 각 요소와 일치하는지 여부를 나타내는 논리 벡터를 반환한다. 정규식 "^[0-9]{3}-[0-9]{3}-[0-9]{3}-[0-9]{4}$"는 3자리, 하이픈, 3자리, 하이픈, 마지막으로 4자리로 구성된 문자열과 일치한다.
head(.) : 이것은 head() 함수를 사용하여 결과 데이터 프레임의 처음 6줄을 선택하고 있다.
즉, 이 코드는 df_store 데이터 프레임을 필터링하여 tel_no 열이 특정 전화 번호 형식과 일치하는 행만 포함하도록 하고 head() 함수를 사용하여 결과 데이터 프레임의 첫 번째 6행만 선택한다.
R-017: 고객 데이터(df_customer)를 생년월일(birth_day)을 기준으로 나이순으로 정렬하고, 맨 위부터 10개의 항목을 모두 표시하라.
head( df_customer[order(df_customer$birth_day), ], n = 10 )
customer_id | customer_name | gender_cd | gender | birth_day | age | postal_cd | address | application_store_cd | application_date | status_cd | |
---|---|---|---|---|---|---|---|---|---|---|---|
<chr> | <chr> | <chr> | <chr> | <date> | <int> | <chr> | <chr> | <chr> | <chr> | <chr> | |
18818 | CS003813000014 | 村山 菜々美 | 1 | 女性 | 1928-11-26 | 90 | 182-0007 | 東京都調布市菊野台********** | S13003 | 20160214 | 0-00000000-0 |
12329 | CS026813000004 | 吉村 朝陽 | 1 | 女性 | 1928-12-14 | 90 | 251-0043 | 神奈川県藤沢市辻堂元町********** | S14026 | 20150723 | 0-00000000-0 |
15683 | CS018811000003 | 熊沢 美里 | 1 | 女性 | 1929-01-07 | 90 | 204-0004 | 東京都清瀬市野塩********** | S13018 | 20150403 | 0-00000000-0 |
15303 | CS027803000004 | 内村 拓郎 | 0 | 男性 | 1929-01-12 | 90 | 251-0031 | 神奈川県藤沢市鵠沼藤が谷********** | S14027 | 20151227 | 0-00000000-0 |
1682 | CS013801000003 | 天野 拓郎 | 0 | 男性 | 1929-01-15 | 90 | 274-0824 | 千葉県船橋市前原東********** | S12013 | 20160120 | 0-00000000-0 |
7512 | CS001814000022 | 鶴田 里穂 | 1 | 女性 | 1929-01-28 | 90 | 144-0045 | 東京都大田区南六郷********** | S13001 | 20161012 | A-20090415-7 |
2379 | CS016815000002 | 山元 美紀 | 1 | 女性 | 1929-02-22 | 90 | 184-0005 | 東京都小金井市桜町********** | S13016 | 20150629 | C-20090923-C |
4681 | CS009815000003 | 中田 里穂 | 1 | 女性 | 1929-04-08 | 89 | 154-0014 | 東京都世田谷区新町********** | S13009 | 20150421 | D-20091021-E |
6306 | CS012813000013 | 宇野 南朋 | 1 | 女性 | 1929-04-09 | 89 | 231-0806 | 神奈川県横浜市中区本牧町********** | S14012 | 20150712 | 0-00000000-0 |
16071 | CS005813000015 | 金谷 恵梨香 | 1 | 女性 | 1929-04-09 | 89 | 165-0032 | 東京都中野区鷺宮********** | S13005 | 20150506 | 0-00000000-0 |
설명:
이 코드는 df_customer 데이터 프레임을 birth_day 열로 오름차순으로 정렬하고 head() 함수를 사용하여 결과 데이터 프레임의 처음 10개의 행을 선택합니다. 아래는 코드의 내용을 소개합니다.
df_customer: 사용 중인 데이터 프레임입니다.
[order(df_customer$birth_day),] : df_customer 데이터 프레임을 서브셋하여 모든 열을 포함하도록 하고, birth_day 열의 오름차순으로 행을 정렬합니다. order() 함수는 birth_day 열을 오름차순으로 정렬하는 인덱스 벡터를 반환합니다. 이 인덱스를 데이터 프레임의 행에 연산자로 적용하면 데이터 프레임은 생일 열을 기준으로 정렬됩니다.
head(. , n = 10): head() 함수를 사용하여 완성된 데이터 프레임의 처음 10개의 행을 선택하고 있습니다.
즉, 이 코드는 df_customer 데이터 프레임을 birth_day 열로 오름차순으로 정렬하고, head() 함수를 사용하여 결과 데이터 프레임의 첫 10개의 행을 선택하고 있는 것이다. 이 코드는 df_customer 데이터 프레임에서 가장 오래된 고객을 빠르게 확인하고 싶을 때 유용하다.
R-018: 고객 데이터(df_customer)를 생년월일(birth_day)을 기준으로 젊은 순서로 정렬하고, 맨 위부터 10개의 항목을 모두 표시하라.
head( df_customer[order(df_customer$birth_day, decreasing = TRUE), ], n = 10 )
customer_id | customer_name | gender_cd | gender | birth_day | age | postal_cd | address | application_store_cd | application_date | status_cd | |
---|---|---|---|---|---|---|---|---|---|---|---|
<chr> | <chr> | <chr> | <chr> | <date> | <int> | <chr> | <chr> | <chr> | <chr> | <chr> | |
15640 | CS035114000004 | 大村 美里 | 1 | 女性 | 2007-11-25 | 11 | 156-0053 | 東京都世田谷区桜********** | S13035 | 20150619 | 6-20091205-6 |
7469 | CS022103000002 | 福山 はじめ | 9 | 不明 | 2007-10-02 | 11 | 249-0006 | 神奈川県逗子市逗子********** | S14022 | 20160909 | 0-00000000-0 |
10746 | CS002113000009 | 柴田 真悠子 | 1 | 女性 | 2007-09-17 | 11 | 184-0014 | 東京都小金井市貫井南町********** | S13002 | 20160304 | 0-00000000-0 |
19812 | CS004115000014 | 松井 京子 | 1 | 女性 | 2007-08-09 | 11 | 165-0031 | 東京都中野区上鷺宮********** | S13004 | 20161120 | 1-20081231-1 |
7040 | CS002114000010 | 山内 遥 | 1 | 女性 | 2007-06-03 | 11 | 184-0015 | 東京都小金井市貫井北町********** | S13002 | 20160920 | 6-20100510-1 |
3671 | CS025115000002 | 小柳 夏希 | 1 | 女性 | 2007-04-18 | 11 | 245-0018 | 神奈川県横浜市泉区上飯田町********** | S14025 | 20160116 | D-20100913-D |
12494 | CS002113000025 | 広末 まなみ | 1 | 女性 | 2007-03-30 | 12 | 184-0015 | 東京都小金井市貫井北町********** | S13002 | 20171030 | 0-00000000-0 |
15978 | CS033112000003 | 長野 美紀 | 1 | 女性 | 2007-03-22 | 12 | 245-0051 | 神奈川県横浜市戸塚区名瀬町********** | S14033 | 20150606 | 0-00000000-0 |
5717 | CS007115000006 | 福岡 瞬 | 1 | 女性 | 2007-03-10 | 12 | 285-0845 | 千葉県佐倉市西志津********** | S12007 | 20151118 | F-20101016-F |
15098 | CS014113000008 | 矢口 莉緒 | 1 | 女性 | 2007-03-05 | 12 | 260-0041 | 千葉県千葉市中央区東千葉********** | S12014 | 20150622 | 3-20091108-6 |
설명:
이 코드는 df_customer 데이터 프레임을 birth_day 열로 내림차순으로 정렬하고 head() 함수를 사용하여 결과 데이터 프레임의 처음 10개의 행을 선택합니다. 아래는 코드의 내용을 소개합니다.
df_customer: 사용 중인 데이터 프레임입니다.
[order(df_customer$birth_day, decreasing = TRUE), ]: df_customer 데이터 프레임을 하위 집합화하여 모든 열을 포함하되, birth_day 열을 기준으로 내림차순으로 행을 정렬하고 있습니다. 는 기본적으로 birth_day 열을 오름차순으로 정렬하는 인덱스 벡터를 반환하지만, decreasing = TRUE를 설정하여 내림차순으로 정렬할 수 있습니다. 이 인덱스를 데이터 프레임의 행에 연산자로 적용하면 데이터 프레임은 birth_day 열의 내림차순으로 정렬됩니다.
head(. , n = 10): head() : 완성된 데이터 프레임의 처음 10개의 행을 선택하는 부분이다.
즉, 이 코드는 df_customer 데이터 프레임을 birth_day 열로 내림차순으로 정렬하고, head() 함수를 사용하여 결과 데이터 프레임의 첫 10개의 행을 선택하고 있는 것이다. 이 코드는 df_customer 데이터 프레임에서 가장 어린 고객을 빠르게 확인하고 싶을 때 유용합니다.
R-019: 영수증 내역 데이터(df_receipt)에 대해 건당 매출 금액(amount)이 높은 순서대로 순위를 부여하고, 맨 위부터 10건씩 표시한다. 항목은 고객 ID(customer_id), 매출 금액(amount), 부여한 랭크를 표시하도록 한다. 단, 매출액(amount)이 동일한 경우 동일한 순위를 부여한다.
df_receipt[c("customer_id", "amount")] %>% mutate(ranking = min_rank(desc(amount))) %>% arrange(ranking) %>% slice(1:10)
customer_id | amount | ranking |
---|---|---|
<chr> | <int> | <int> |
CS011415000006 | 10925 | 1 |
ZZ000000000000 | 6800 | 2 |
CS028605000002 | 5780 | 3 |
CS015515000034 | 5480 | 4 |
ZZ000000000000 | 5480 | 4 |
ZZ000000000000 | 5480 | 4 |
ZZ000000000000 | 5440 | 7 |
CS021515000089 | 5440 | 7 |
CS015515000083 | 5280 | 9 |
CS017414000114 | 5280 | 9 |
설명:
이 코드는 df_receipt 데이터 프레임에서 customer_id와 amount라는 열을 선택하고, ranking이라는 새로운 열을 추가하여 거래 금액에 따른 각 고객의 순위를 표시합니다(가장 높은 금액을 1순위로 설정). 아래는 코드의 내용을 소개합니다.
df_receipt[c("customer_id", "amount")]: df_receipt 데이터 프레임을 서브셋하여 customer_id와 amount 컬럼만 포함하도록 한 것이다.
%>%: 이전 연산의 출력을 다음 연산의 입력으로 전달하는 파이프 연산자이다.
mutate(ranking = min_rank(desc(amount))): 데이터 프레임에 ranking이라는 새로운 컬럼을 추가하는 것으로, 거래 금액에 따른 각 고객의 순위를 나타냅니다. 순위를 계산하고, 동점은 임의로 해소한다. 이 함수를 마이너스(desc() 함수)를 취한 후 금액 열에 대해 가장 높은 값의 순위가 1이 되도록 적용하면 거래 금액에 따른 고객 순위를 얻을 수 있다.
arrange(ranking) : 데이터 프레임을 랭킹 열에서 오름차순으로 정렬합니다.
slice(1:10) : slice() 함수를 사용하여 결과 데이터 프레임의 상위 10개의 행을 선택하고 있습니다.
즉, 이 코드는 df_receipt 데이터 프레임에서 customer_id와 amount 열을 선택하고, ranking이라는 새로운 열을 추가하여 거래 금액에 따른 각 고객의 순위를 표시하고, ranking 열을 기준으로 데이터 프레임을 정렬하고, 결과 데이터 프레임의 상위 10개의 행을 선택하고 있습니다. 이 코드는 df_receipt 데이터 프레임의 거래 금액별 상위 10명의 고객을 빠르게 확인하고 싶을 때 유용합니다.
R-020: 영수증 내역 데이터(df_receipt)에 대해 건당 매출 금액(amount)이 높은 순서대로 순위를 부여하고, 맨 위부터 10건씩 표시한다. 항목은 고객 ID(customer_id), 매출 금액(amount), 부여한 순위를 표시한다. 단, 매출금액(amount)이 동일한 경우에도 별도의 순위를 부여해야 한다.
df_receipt[c("customer_id", "amount")] %>% mutate(ranking = row_number(desc(amount))) %>% arrange(ranking) %>% slice(1:10)
customer_id | amount | ranking |
---|---|---|
<chr> | <int> | <int> |
CS011415000006 | 10925 | 1 |
ZZ000000000000 | 6800 | 2 |
CS028605000002 | 5780 | 3 |
CS015515000034 | 5480 | 4 |
ZZ000000000000 | 5480 | 5 |
ZZ000000000000 | 5480 | 6 |
ZZ000000000000 | 5440 | 7 |
CS021515000089 | 5440 | 8 |
CS015515000083 | 5280 | 9 |
CS017414000114 | 5280 | 10 |
설명:
이 코드는 "customer_id"와 "amount" 열을 포함하는 df_receipt라는 데이터 프레임에 대해 일련의 처리를 수행한다.
다음은 이 코드가 수행하는 작업을 단계별로 설명합니다.
df_receipt[c("customer_id", "amount")] : df_receipt 데이터 프레임에서 "customer_id"와 "amount" 컬럼만 선택합니다. 결과 데이터 프레임에는 이 두 컬럼만 포함됩니다.
%>%: R의 파이프 연산자로, 데이터 프레임에 대한 여러 연산을 연결하는 데 사용된다. 한 연산의 출력은 다음 연산의 입력으로 전달된다.
mutate(ranking = row_number(desc(amount))): mutate 함수를 사용하여 데이터 프레임에 "ranking"이라는 새로운 열을 생성하고, "ranking" 열은 "amount" 열을 기준으로 "amount"의 가장 높은 값을 "1", 두 번째로 높은 값을 "2"로 설정한다. 에 가장 높은 값을 "2", 두 번째로 높은 값을 "2"로 순위를 매기고, desc 함수는 "amount" 컬럼을 내림차순으로 정렬하는 데 사용된다.
arrange(ranking) : 데이터 프레임을 "ranking" 컬럼에서 오름차순(1~n)으로 정렬한다.
slice(1:10) : 정렬된 데이터 프레임의 처음 10개의 행을 선택한다(즉, "amount" 값과 해당 "customer_id" 값이 가장 큰 10개의 행을 선택한다). slice 함수는 데이터 프레임에서 행을 부분 집합으로 만드는 데 사용된다.
요약하면, 이 코드는 데이터 프레임에서 "customer_id"와 "amount"열을 선택하고, "amount"값을 내림차순으로 순위를 매기고, 순위에 따라 데이터 프레임을 정렬하고, 상위 10개의 행(즉, "amount"값이 가장 높은 10명의 고객)을 선택한다.
Comment