我有一个看起来像这样的数据集
col1 - desc, col2 - value, col3 - count (header)
value1, descriptor 1, 6
value1, descriptor 2, 3
value1, descriptor 3, 1
value2, descriptor 7, 8
value2, descriptor 8, 6
value2, descriptor 9, 2
对于col1中的每个唯一值,我需要以这样的方式对数据进行分区:在x轴上使用col2,使用col 3作为y值。
答案 0 :(得分:0)
不清楚您计划创建哪种情节。但我认为关键是要根据col1
拆分数据框。之后,为每个分离的数据框创建绘图。
这是一个例子。最终输出p_lst
包含col1
中所有唯一值的条形图,其中col2
为x轴,col3
为y轴。请注意,我还在每个情节的标题中添加了col1
。
# Load package
library(ggplot2)
# Create example data frame
dt <- read.csv(text = "col1 - desc, col2 - value, col3 - count (header)
value1, descriptor 1, 6
value1, descriptor 2, 3
value1, descriptor 3, 1
value2, descriptor 7, 8
value2, descriptor 8, 6
value2, descriptor 9, 2",
header = TRUE, stringsAsFactors = FALSE)
# Rename dt
colnames(dt) <- c("col1", "col2", "col3")
# Split dt based on col1, save results to lst
lst <- split(dt, dt$col1)
# Create a function to produce bar plot
bar_fun <- function(dt){
p <- ggplot(dt, aes(x = col2, y = col3)) +
geom_col() +
ggtitle(as.character(unique(dt$col1)))
return(p)
}
# Plot all data frames in lst
p_lst <- lapply(lst, bar_fun)
# You can access individual plot by index or name
p_lst[[1]]
p_lst$value2