R 按ggplot2中的两列分组

R 按ggplot2中的两列分组,r,ggplot2,R,Ggplot2,可以按两列进行分组吗?这样就画出了叉积 通过geom_point()和geom_smooth() 例如: frame <- data.frame( series <- rep(c('a', 'b'), 6), sample <- rep(c('glass','water', 'metal'), 4), data <- c(1:12)) ggplot(frame, aes()) # ... frame frame$grp <- paste(frame[,

可以按两列进行分组吗?这样就画出了叉积 通过
geom_point()
geom_smooth()

例如:

frame <- data.frame(
 series <- rep(c('a', 'b'), 6), 
 sample <- rep(c('glass','water', 'metal'), 4), 
 data <- c(1:12))

ggplot(frame, aes()) # ...

frame

frame$grp <- paste(frame[,1],frame[,2])
frame$grp例如:

 qplot(round, price, data=firm, group=id, color=id, geom='line') +  
      geom_smooth(aes(group=interaction(size, type)))
以中的示例为例,使用
交互
将两列合并为一个新因子:

# Data frame with two continuous variables and two factors 
set.seed(0)
x <- rep(1:10, 4)
y <- c(rep(1:10, 2)+rnorm(20)/5, rep(6:15, 2) + rnorm(20)/5)
treatment <- gl(2, 20, 40, labels=letters[1:2])
replicate <- gl(2, 10, 40)
d <- data.frame(x=x, y=y, treatment=treatment, replicate=replicate)

ggplot(d, aes(x=x, y=y, colour=treatment, shape = replicate,
  group=interaction(treatment, replicate))) + 
  geom_point() + geom_line()
#具有两个连续变量和两个因子的数据框架
种子集(0)

我认为你不应该为了绘图而修改你的
data.frame
绘图
应该绘制您的df,而不是相反。我同意,Blue Magister的答案更好。@Clemlafleme我认为Blue Magister的答案很好,尽管我认为这种情况下的区别很小。但是,如果您选择使用ggplot2,则不应修改绘图数据框的一般立场很奇怪,因为ggplot2的整个设计都是以明确构建数据以使用ggplot的语义为前提的。
paste
的一个缺点是,当输入是一个因素时,它会丢弃级别,其中,
交互
保留原始因子的顺序。这意味着使用
interaction
方法对组进行更自然的排序。
interaction
的一个缺点是它可能会降低
NA
。考虑例子:<代码>粘贴(C(“a”,b,NA,NA),C(1,2,1,2))< /代码>,导致四个不同的分组变量:<代码>“1”“B 2”“NA 1”“NA 2”< /代码>,而<代码>交互(C(“a”,b),NA,NA),C(1,2,1,2)只生成三个分组变量。