R为每个行向量中的值添加迷你图列

时间:2018-06-18 12:20:12

标签: r sparklines

从数据框开始

library(dplyr)
library(sparkline)
df <- data.frame(matrix(1:9, nrow = 3, ncol = 3))

   X1 X2 X3
1  1  4  7
2  2  5  8
3  3  6  9

想添加一个列&#39; spark&#39;用于迷你线:

df <- df %>% mutate(spark = spk_chr(values = ?, type = "bar", elementId = X1))

所以问号(?)将被每行df组成的向量所取代。

对于第一行? = c(1, 4, 7),第一行的值spark = spk(values = c(1, 4, 7)...)

我知道如何从任何行中提取向量,第一行向量为unlist(df[1,]),但不明白是否可以在mutate中使用它。

1 个答案:

答案 0 :(得分:1)

使用Ronak的建议来创建中间列:

cols = names(df)
df$y <- apply(df[,cols], 1, paste, collapse = "-")

然后创建了矢量化的spk_chr:

sparky <- Vectorize(sparkline::spk_chr)

用于制作火花柱:

df <- df %>% mutate(spark = sparky(strsplit(y, split="-"), type = "bar", elementId = X1))