从数据框开始
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中使用它。
答案 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))