我有两个不同长度的向量,并想为其创建小提琴图。我目前正在做的是Transfert
,这使得较短的向量可以重复,直到与较长的向量的长度匹配为止(默认情况下,由cbind
在R中完成)。
cbind
这会影响小提琴的形状吗?是否有一种更正确的方法来创建小提琴图而不必人为地增加其中一个的长度?
答案 0 :(得分:3)
不是cbind
编写两个长度不同的向量,这将导致回收再熔化,而是制作两个数据帧,在其中标记每个代表的内容并rbind
。这样一来,您可以从ggplot
期望的形状开始,而不必冒从两组数据中较短的那一组重复值的风险。
library(ggplot2)
set.seed(710)
C1 <- data.frame(value = rnorm(100), variable = "C1")
C2 <- data.frame(value = rnorm(500), variable = "C2")
dat <- rbind(C1, C2)
head(dat)
#> value variable
#> 1 -0.97642446 C1
#> 2 -0.51938107 C1
#> 3 1.05793223 C1
#> 4 -0.88139935 C1
#> 5 -0.05997154 C1
#> 6 0.31960235 C1
ggplot(dat, aes(x = variable, y = value)) +
geom_violin(scale = "width", adjust = 1, width = 0.5)
由reprex package(v0.2.0)于2018-07-11创建。