Posit Assistant 소개 및 기본 사용법

RStudio
AI
Posit
RStudio에 내장된 AI 코딩 어시스턴트, Posit Assistant의 기능과 활용법을 소개합니다
Author

김경환

Published

March 14, 2026

Posit Assistant란?

Posit Assistant는 RStudio IDE에 내장된 AI 기반 코딩 어시스턴트입니다. 데이터 분석, 통계, 코딩 작업에 특화된 AI로, 마치 숙련된 동료 데이터 과학자와 함께 작업하는 것처럼 도움을 받을 수 있습니다.

단순히 코드를 자동완성해 주는 수준을 넘어, 데이터 탐색부터 통계 분석, 시각화, Shiny 앱 개발, Quarto 문서 작성까지 폭넓은 작업을 지원합니다.


주요 기능

1. R 코드 작성 및 디버깅

작성 중인 코드에 오류가 생겼을 때 원인을 설명하고 수정안을 제시해 줍니다. 함수 사용법이 기억나지 않을 때도 바로 물어볼 수 있습니다.

예시 질문:

“다음 코드에서 오류가 나는 이유를 설명하고 수정해줘”

“tidyverse로 이 데이터를 그룹별로 요약하는 코드를 작성해줘”

2. 데이터 탐색 및 분석

데이터프레임을 불러온 뒤 Posit Assistant에게 탐색을 요청하면, 결측값 확인, 분포 파악, 이상값 탐지 등을 코드와 함께 안내해 줍니다.

# 예: 데이터 구조 파악
head(df)
df |> summarise(across(everything(), n_distinct))
df |> summarise(across(everything(), ~sum(is.na(.))))

3. 시각화 코드 생성

ggplot2를 활용한 시각화를 요청하면 적절한 그래프 유형을 선택해 코드를 작성해 줍니다.

예시 질문:

“연도별 매출 추이를 선 그래프로 그려줘”

“제조사별 연비 분포를 박스플롯으로 시각화해줘”

4. 통계 분석

t-검정, ANOVA, 회귀분석 등 통계 분석을 요청하면 적절한 검정을 선택하고 가정 검토부터 결과 해석까지 도와줍니다.

# 예: infer 패키지를 활용한 t-검정
library(infer)
df |> t_test(outcome ~ group, order = c("A", "B"))

5. 코드 리팩토링 및 문서화

기존 코드를 더 읽기 쉽고 효율적으로 개선하거나, 함수에 roxygen2 문서를 추가하는 작업도 가능합니다.

6. Shiny 앱 개발

bslib 패키지를 활용한 모던 Shiny 앱을 설계하고 코드를 작성할 수 있습니다.

7. Quarto 문서 작성

지금 보고 계신 이 블로그처럼, Quarto 문서 작성과 관련된 문법, 레이아웃, 확장 기능도 안내받을 수 있습니다.


사용 방법

접근 방법

RStudio 우측 패널(또는 상단 메뉴)에서 Posit Assistant 탭을 열면 채팅창이 나타납니다. 자연어로 질문하거나 요청을 입력하면 됩니다.

현재 파일 컨텍스트 활용

Posit Assistant는 현재 RStudio에서 열려 있는 파일, 선택된 코드, 콘솔 상태 등을 인식합니다. 따라서 코드를 드래그하여 선택한 뒤 질문하면 해당 코드에 대한 맥락 있는 답변을 얻을 수 있습니다.

효과적인 질문 방법

상황 예시 질문
코드 오류 “이 오류 메시지의 원인은?”
코드 작성 “mtcars 데이터로 실린더별 연비 박스플롯을 그려줘”
개념 질문 “tidyr의 pivot_longer와 pivot_wider 차이를 설명해줘”
데이터 탐색 “이 데이터의 결측값 패턴을 확인해줘”
패키지 추천 “공간 데이터 시각화에 적합한 R 패키지를 추천해줘”

활용 팁

구체적으로 요청하기
막연하게 “분석해줘”보다는 “이 데이터에서 age와 income의 상관관계를 시각화하고 피어슨 상관계수를 계산해줘”처럼 구체적으로 요청할수록 좋은 결과를 얻습니다.

단계별로 작업하기
복잡한 분석을 한 번에 요청하기보다 단계별로 나눠 진행하면 각 결과를 확인하며 방향을 조정할 수 있습니다.

결과 검토하기
AI가 생성한 코드는 반드시 직접 이해하고 검토해야 합니다. 분석 의도와 맞는지 확인하는 습관이 중요합니다.


튜토리얼: Posit Assistant와 함께하는 공공데이터 탐색

실제로 Posit Assistant가 어떻게 분석을 도와주는지, gapminder 데이터를 활용한 시나리오로 살펴보겠습니다. gapminder는 전 세계 국가별 기대수명, 인구, 1인당 GDP 등을 담은 공개 데이터로, 공공데이터 분석 연습에 자주 사용됩니다.

Note

아래 대화 형식은 실제 Posit Assistant와 주고받은 내용을 재현한 것입니다. 채팅창에 질문을 입력하면 코드가 생성되고, 바로 실행해볼 수 있습니다.

Step 1. 데이터 불러오기

💬 나: gapminder 데이터를 불러오고 기본 구조를 파악하는 코드를 작성해줘

Posit Assistant가 제안한 코드:

Code
library(tidyverse)
library(gapminder)
Warning: package 'gapminder' was built under R version 4.5.2
Code
# 데이터 구조 확인
glimpse(gapminder)
Rows: 1,704
Columns: 6
$ country   <fct> "Afghanistan", "Afghanistan", "Afghanistan", "Afghanistan", …
$ continent <fct> Asia, Asia, Asia, Asia, Asia, Asia, Asia, Asia, Asia, Asia, …
$ year      <int> 1952, 1957, 1962, 1967, 1972, 1977, 1982, 1987, 1992, 1997, …
$ lifeExp   <dbl> 28.801, 30.332, 31.997, 34.020, 36.088, 38.438, 39.854, 40.8…
$ pop       <int> 8425333, 9240934, 10267083, 11537966, 13079460, 14880372, 12…
$ gdpPercap <dbl> 779.4453, 820.8530, 853.1007, 836.1971, 739.9811, 786.1134, …
Code
# 각 열의 고유값 수 확인
gapminder |> summarise(across(everything(), n_distinct))
# A tibble: 1 × 6
  country continent  year lifeExp   pop gdpPercap
    <int>     <int> <int>   <int> <int>     <int>
1     142         5    12    1626  1704      1704

데이터는 142개국, 1952~2007년 5년 간격 총 1,704개 행으로 구성되어 있습니다. 결측값은 없습니다.


Step 2. 아시아 국가 기대수명 추이 탐색

💬 나: 아시아 국가들의 연도별 기대수명 변화를 선 그래프로 보여줘. 한국을 강조하고 싶어

Posit Assistant가 제안한 코드:

Code
gapminder |>
  filter(continent == "Asia") |>
  ggplot(aes(x = year, y = lifeExp, group = country)) +
  geom_line(color = "gray80") +
  geom_line(
    data = \(d) filter(d, country == "Korea, Rep."),
    color = "#E63946", linewidth = 1.2
  ) +
  annotate("text", x = 2007, y = 79.5, label = "한국", 
           color = "#E63946", hjust = -0.1, size = 3.5) +
  scale_x_continuous(breaks = seq(1952, 2007, by = 10)) +
  labs(
    title = "아시아 국가 기대수명 추이 (1952–2007)",
    x = NULL, y = "기대수명 (세)"
  )

한국은 1952년 약 47세에서 2007년 약 79세로, 아시아에서도 가장 빠른 기대수명 증가를 보인 국가 중 하나입니다.


Step 3. 1인당 GDP와 기대수명의 관계

💬 나: 2007년 데이터만 사용해서 1인당 GDP와 기대수명의 관계를 대륙별로 시각화해줘. GDP는 로그 스케일로 표현해줘

Posit Assistant가 제안한 코드:

Code
gapminder |>
  filter(year == 2007) |>
  ggplot(aes(x = gdpPercap, y = lifeExp, color = continent, size = pop)) +
  geom_point(alpha = 0.7) +
  scale_x_log10(labels = scales::label_dollar(suffix = "")) +
  scale_size(range = c(1, 12), guide = "none") +
  labs(
    title = "1인당 GDP와 기대수명 (2007)",
    subtitle = "원 크기: 인구수",
    x = "1인당 GDP (로그 스케일, USD)",
    y = "기대수명 (세)",
    color = "대륙"
  )

전반적으로 1인당 GDP가 높을수록 기대수명도 높아지는 경향이 있으나, 아프리카 국가들의 경우 같은 소득 수준 대비 기대수명이 낮게 분포하는 것을 확인할 수 있습니다.


Step 4. 대륙별 기대수명 비교 (통계 분석)

💬 나: 2007년 기준으로 대륙별 기대수명의 평균과 중앙값을 요약해줘. 그리고 아시아와 유럽의 기대수명 차이가 통계적으로 유의한지 검정해줘

Posit Assistant가 제안한 코드:

Code
# 대륙별 요약 통계
gapminder |>
  filter(year == 2007) |>
  group_by(continent) |>
  summarise(
    n       = n(),
    평균    = round(mean(lifeExp), 1),
    중앙값  = round(median(lifeExp), 1),
    sd      = round(sd(lifeExp), 1)
  ) |>
  arrange(desc(평균))
# A tibble: 5 × 5
  continent     n  평균 중앙값    sd
  <fct>     <int> <dbl>  <dbl> <dbl>
1 Oceania       2  80.7   80.7   0.7
2 Europe       30  77.6   78.6   3  
3 Americas     25  73.6   72.9   4.4
4 Asia         33  70.7   72.4   8  
5 Africa       52  54.8   52.9   9.6
Code
library(infer)
Warning: package 'infer' was built under R version 4.5.2
Code
# 아시아 vs 유럽 Welch t-검정
gapminder |>
  filter(year == 2007, continent %in% c("Asia", "Europe")) |>
  t_test(lifeExp ~ continent, order = c("Europe", "Asia"))
# A tibble: 1 × 7
  statistic  t_df   p_value alternative estimate lower_ci upper_ci
      <dbl> <dbl>     <dbl> <chr>          <dbl>    <dbl>    <dbl>
1      4.65  41.5 0.0000339 two.sided       6.92     3.91     9.93

유럽과 아시아의 기대수명 차이는 통계적으로 유의미합니다(p < 0.001). 다만 아시아 내부의 국가 간 편차가 매우 크기 때문에(sd ≈ 7.7세), 단순 평균 비교만으로 결론을 내리기보다 내부 분포를 함께 살펴보는 것이 좋습니다.


Step 5. 코드 정리 요청

분석이 끝난 뒤, 산발적으로 작성된 코드를 정리하고 싶을 때도 Posit Assistant가 도움이 됩니다.

💬 나: 지금까지 작성한 코드를 하나의 깔끔한 스크립트로 정리해줘. 각 단계에 주석을 달아줘

이처럼 분석의 마지막 단계에서 문서화와 코드 정리까지 요청할 수 있습니다.


마무리

Posit Assistant는 R과 데이터 분석 워크플로우에 최적화된 AI 어시스턴트로, 반복적인 코드 작성 시간을 줄이고 분석의 본질에 더 집중할 수 있도록 돕습니다. 위 튜토리얼처럼 자연어로 단계별 질문을 던지며 분석을 진행하다 보면, 혼자 작업할 때보다 훨씬 빠르게 인사이트에 도달할 수 있습니다.

처음 사용해보신다면 오늘 바로 RStudio에서 gapminder 데이터를 불러오고 간단한 질문으로 시작해 보세요.