【发布时间】:2018-06-18 12:20:12
【问题描述】:
从数据框开始
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
想要添加一列“火花”以用于迷你图:
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。
【问题讨论】:
-
df %>% mutate(spark = spk_chr(values = c(X1, X2, X3), type = "bar", elementId = X1))? -
@Axeman 这不起作用 - 它为每一行提供了相同的值。尝试了 Vectorize(spk_chr),这改变了 elementId,但是每一行的值都不正确。
-
我不太确定您的目标是什么。如何为每一行绘制一个条形图,每行包含三个单独的元素?您要绘制总和吗?
-
@RonakShah - 根据您的建议,我创建了一列连接每行值的字符串。然后在 spk_chr 的 values 参数中使用 strsplit。这行得通。不确定是否有更直接的方法来避免字符串中间阶段。
标签: r sparklines