r 基础上手

简单计算

x <- 1 
x

数据类型

下载套件

# install.packages("rmarkdown")
# install.packages('tidyverse')
# install.packages('dplyr')
# install.packages('tidyr')
library(tidyverse)

head() 检查 diamonds 数据

diamonds %>%
    head

filter() 筛选出 carat 大于 1 的钻石

diamonds %>%
  filter(carat > 1)

筛选出 carat > 1 且 cut 为 “Premium”

diamonds %>%
  filter(carat > 1, cut == "Premium",z>3)

arrange() 按价格从高到低排序

diamonds %>%
  arrange(desc(price))

由低到高排序则是 arrange(price)

mutate() 新增字段或修改字段

diamonds %>%
  filter(carat > 1) %>%
  mutate(price_per_carat = price / carat) %>%
  arrange(desc(price_per_carat))

group_by()

diamonds %>%
  filter(carat > 1) %>%
  mutate(price_per_carat = price / carat) %>%
  group_by(cut) %>% 
  summarise(avg_price_per_carat = mean(price_per_carat))

每个 cut 对应的平均每克拉价格

ggplot

geom_bar()

diamonds %>%
  filter(carat > 1) %>%
  mutate(price_per_carat = price / carat) %>%
  group_by(cut) %>% 
  summarise(avg_price_per_carat = mean(price_per_carat)) %>%
  ggplot(aes(x = cut, y = avg_price_per_carat)) +
  geom_bar(stat = "identity",fill = "steelblue")

geom_line() + geom_point()

diamonds %>%
  filter(carat > 1) %>%
  mutate(price_per_carat = price / carat) %>%
  group_by(cut) %>%
  summarise(avg_price_per_carat = mean(price_per_carat)) %>%
  ggplot(aes(x = cut, y = avg_price_per_carat, group = 1)) +
  geom_line(color='blue') +
  geom_point()

geom_boxplot()

diamonds %>%
  filter(carat > 1) %>%
  mutate(price_per_carat = price / carat) %>%
  ggplot(aes(x = cut, y = price_per_carat)) +
  geom_boxplot()