绘制R

绘制R,r,R,我有一个带有二进制(0或1)指示符列的data.frame,如“age\u 30\u 35”、“age\u 36\u 40”等。例如,36岁的人将有(age\u 30\u 35=0,age\u 36\u 40=1)。此外,还有一个参考类别(年龄30岁35岁=0,年龄36岁40岁=0)。下面是一个例子: data<- data.frame(c(1,0,0),c(0,1,0),c(2.5,1.3,4.5)) colnames(data)=c('age_30_35','age_36_40','m

我有一个带有二进制(0或1)指示符列的
data.frame
,如
“age\u 30\u 35”、“age\u 36\u 40”
等。例如,36岁的人将有
(age\u 30\u 35=0,age\u 36\u 40=1)
。此外,还有一个参考类别
(年龄30岁35岁=0,年龄36岁40岁=0)
。下面是一个例子:

data<- data.frame(c(1,0,0),c(0,1,0),c(2.5,1.3,4.5))
colnames(data)=c('age_30_35','age_36_40','muscle_strength')

数据我想你可以通过以下方式创建额外的
系数

i <- 1:2 #indices of columns with dummies 
f <- factor(
    as.matrix(data[,i]) %*% 1:length(i), 
    labels=c("ref", names(data[,i]))
)
boxplot(data$muscle_strength ~ f)

我可以请您提供一个可复制的示例吗?听起来您可能想从宽到长“重塑”您的数据集。如果是这样的话,如果你搜索“从宽到长的r重塑”,这个主题会有很多信息。@aosmith:谢谢你的建议,这可能会有用。不过,我希望能有一个更快的解决方案,也许是作为ggplot中的一个选项?我认为最简单的方法是重塑数据(正如aosmith所建议的),或者实际创建额外的因子。你为什么不想做这两件事呢?请注意,任何一个选项都可以轻松地扩展到大量列(您肯定不会手动创建新的因子!),否则,您将编写一个脚本,与因子完全一样有效地对数据进行子集划分,然后从不同的数据子集逐个生成绘图。