我有一个数据框,有四列,格式如下。
第1列:0黄色(8个观测值)第2列:0紫色(9个观测值)第3列:6黄色(11个观测值)第4列:6紫色(12个观测值)。
Yellow_0 <- c(2,5,6,2,6,4,35,6,NA,NA,NA,NA)
Purple_0 <- c(12,34,34,54,23,33,2,12,23,NA,NA,NA)
Yellow_6 <- c(31,23,4,5,56,43,18,33,5,23,33,NA)
Purple_6 <- c(23,5,23,33,45,66,12,23,2,2,23,24)
我想按时间(0 & 6)和颜色(黄色和紫色)进行分组。我尝试了下面的代码(导入csv文件后),它同时按时间和颜色(共4组)对变量进行分组,而不是按时间(两组)和颜色(两组)进行分组。library(tidyverse)
library(reshape2)
DF <- melt(DF, na.rm = TRUE)
DF <- DF %>% group_by(variable)
a <- ggplot(DF, aes(x=variable, y= value, colour = variable)) + geom_boxplot()
如何对时间和颜色进行 "group_by "功能?
我们可以 separate
将列名改成 "长 "格式后一分为二。
library(dplyr)
library(tidyr)
library(ggplot2)
DF %>%
pivot_longer(cols = everything(), values_drop_na = TRUE) %>%
separate(name, into = c('color', 'time')) %>%
ggplot(aes(x = time, y = value, fill = color)) +
geom_boxplot() +
facet_wrap(~ color)
DF <- data.frame(Yellow_0, Purple_0, Yellow_6, Purple_6)