代码之家  ›  专栏  ›  技术社区  ›  Vlad

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

  •  0
  • Vlad  · 技术社区  · 8 年前

    从数据帧开始

    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,]) ,但不知道这是否可以用于突变。

    1 回复  |  直到 8 年前
        1
  •  1
  •   Vlad    8 年前

    使用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))