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)只生成三个分组变量。