2017-02-15 58 views
-1

分组数据假设我有这样的数据:绘图图表通过在数据帧

distance <- c(134.2, 433.34, 332.12, 543.12, 333.12) 
road.type <- c(1, 0, 1, 1, 0) 
A <- c(2.3, 3.1, 4.4, 2.2, 1.4) 
B <- c(0.33, 0.56, 0.45, 0.55, 0.98) 

random.list <- data.frame(distance, road.type, A, B) 

我想,在同图中,绘制例如组合距离〜阿通过分级数据由road.type。因此,实际上,该图应该包含两行,一行将表示距离~A数据给出的是road.type = 1,第二行将说明距离~A数据给出了road.type = 0。

我是什么想出是这样的:

random.list.sp1 <- random.list[random.list$road.type == "1"] 

但我得到的回报是不是包含行只具有road.type = 1,包含所有行,但没有road.type表,而是表柱。

另外一般情况下,有没有一种快速的方法来修改任何其他类型的图的给定列的数据?特别是,我可以使用对()或散点图()等提议的技术?

回答

0

以下是一种方法。你的road.type需要是一个数字以外的数字(例如一个因素),以将剧情分成两个系列。

distance <- c(134.2, 433.34, 332.12, 543.12, 333.12) 
road.type <- c(1, 0, 1, 1, 0) 
A <- c(2.3, 3.1, 4.4, 2.2, 1.4) 
B <- c(0.33, 0.56, 0.45, 0.55, 0.98) 

random.list <- data.frame(distance, road.type, A, B) 

random.list$road.type <- as.factor(random.list$road.type) 
library(tidyverse) 

data <- gather(random.list, distance, road.type) 
names(data) <- c("distance", "road_type", "class", "value") 
data <- data %>% filter(class == "A") 
ggplot(data, aes(distance, value, color = road_type)) + geom_line()