r - 转换数据并使用 R 中的构面创建直方图
问题描述
我有 400 列具有动态名称(t_namelist1_namelist2)。每个 namelist1 和 namelist2 中有 20 个名称。我必须创建一个带有分面20 by 20
和标签的直方图 -
- 沿行 - namelist1
- 沿着 col - namelist2
有人可以展示如何使用 pivot_longer() 转换数据,使用它将_
三个部分分开t
,namelist1
以及namelist2
在示例问题中,我有一个包含 4 列的小标题,我想在 2by2 方面创建 4 个带有标签的单独直方图 -
- 沿行 - a 和 b
- 沿着 col - x 和 y
谢谢
library(tidyverse)
t_a_x <- rnorm(100)
t_b_x <- rnorm(100)
t_a_y <- rnorm(100)
t_b_y <- rnorm(100)
tbl <- tibble(t_a_x, t_a_y, t_b_x, t_b_y)
# create a histogram in 2 by 2 facets with labels -
# along row - a and b
# along col - x and y
解决方案
下面的第一段代码将示例数据重新排列为三列数据框,每一列对应于“ab”、“xy”或值(“t”);基本上用“_”分隔原始列名。然后您可以根据“xy”和“ab”进行绘图和刻面。
# Rearrange table by separating the column names by "_" using pivot_longer()
tbl_formatted <- tbl %>% pivot_longer(everything(),
names_to = c(".value", "ab", "xy"),
names_sep = c("_")
)
# Plot
tbl_formatted %>% ggplot(aes(x = t, y = t)) +
geom_point() +
facet_wrap(facets = ab ~ xy)
推荐阅读
- angular - 通过实体表示正确使用 subscribe() 到 Observable
- azure-devops - YAML 管道与默认 Azure 管道中的输出不一致
- algorithmic-trading - crpto 交易的技术分析 (MACD)
- python - ValueError:传递值的形状为 (37679, 43),索引暗示 (37679, 41)
- javascript - 有谁知道 Chrome 如何监控 javascript 中 DOM 元素的更改并在 GUI 中复制它们的实现细节?
- dax - 使用 DAX 计算表列的不同值加上两个静态值
- javascript - Laravel mix 不适用于 thread-loader + ts-loader
- ffmpeg - 如何在ffmpeg中汇总两个流中的音频
- python - 如何计算火花 RDD 中出现的次数并将其作为字典返回?
- python - 在 Unix 上如何可靠地设置宽度 `wget` 用于输出其进度条?