R语言-数据透视表
Posted 基督徒Isaac
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了R语言-数据透视表相关的知识,希望对你有一定的参考价值。
# 数据透视表 #
library(tidyverse)
# 1.生成股票数据
stocks <- data.frame(
time = as.Date('2017-12-01') + 0:4,
X = rnorm(5, 0, 1),
Y = rnorm(5, 0, 2),
Z = rnorm(5, 0, 4)
) %>%
tibble()
stocks
# 2.宽变长
stocks %>%
gather(
.,
key = stock,
value = price,
-time
) %>%
# 然后筛选股票Y
filter(
.,
stock == "Y",
time == "2017-12-02" |
time == "2017-12-03",
price <= 3
) %>%
tibble()
# 将股票X作为参考系
stocks %>%
tibble() %>%
gather(
.,
key = stock,
value = price,
c(Y, Z)
) %>%
# 然后筛选固定日期
filter(
.,
time == "2017-12-02" &
price <= 1.2
)
# 3.长变宽
stocks %>%
gather(
key = stock,
value = price,
-time
) %>%
tibble() %>%
spread(
key = stock,
value = price
)
# 也可以写位于长表的第几列,如key = 2, value = 3
# 将股票X作为参考系
stocks %>%
gather(
key = stock,
value = price,
c(Y, Z)
) %>%
spread(
key = 3,
value = 4
) %>%
tibble()
# fill = 0 参数设置填充缺失值为0
# 数据分列 #
# 创建数据
df<-data.frame(
a=c(1,2),
b=c("a_c","b_c")
) %>%
tibble()
df
# 列分割
df_separate <-
df %>%
separate(
.,
b,
into = c("b","c"),
sep = "_"
)
df_separate
# 列合并
df_unite <-
df_separate %>%
unite(
.,
col = b,
c(b,c),
sep = "_"
)
df_unite
# 参考文献:
# 1.R包系列——tidyr包教程 - 知乎
# 作者:陈小晖
# https://zhuanlan.zhihu.com/p/32348883
# 2.R语言-数据分列 - 知乎
# 作者:陈小晖
# https://zhuanlan.zhihu.com/p/26361683
以上是关于R语言-数据透视表的主要内容,如果未能解决你的问题,请参考以下文章
快速入门pandas进行数据挖掘数据分析[多维度排序数据筛选分组计算透视表]
快速入门pandas进行数据挖掘数据分析[多维度排序数据筛选分组计算透视表]