用于表中的R数据帧的oneliner子集

用于表中的R数据帧的oneliner子集

问题描述:

我想根据列B的值来查看数据框中列的一系列直方图,其中我查看列A的频率(文本描述符) (一个号码)。我想改变B值的截止值,并制作一系列直方图来查看分布的样子。用于表中的R数据帧的oneliner子集

现在我使用:

x <- data[data$B> 10,] 
y <- table(x$A) 
hist(y) 

,我可以为一些B的值运行此不过,我想有一个衬垫这样的:

hist(table(data$A where data$B > 10)) 

但我无法获得正确的语法。任何人都有建议?

+0

这将做到这一点:HIST(表(数据[$ B> 10,] $ A) – zach 2012-01-03 01:43:48

简单的子集的data$a代替data

hist(table(data$a[data$b > 10])) 
+0

当我这样做时,我得到“不正确的维数”。但是我可以在子集之后放置$ Column名称。 – zach 2012-01-03 01:46:59

+0

你上面的代码不一致,所以你可能有一个错字?您也可以使用数据[数据$ B> 10,“A”]或其他形式... – 2012-01-03 02:01:36

+0

你是对的。我输入这个:hist(table(data $ a [data $ b> 10,]))这个逗号正在杀死我! – zach 2012-01-03 02:04:14

library(ggplot2) 
ggplot(subset(data,B>10),aes(A)) + geom_histogram() 
+0

感谢这个工作,但ggplot花了很多 - 我想象是因为它需要一个非常精细的箱体,所以它绘制了更多的线条 – zach 2012-01-03 01:50:36

+0

您可以像这样调整binwidth:geom_histogram(binwidth = 0.1)。您可以轻松使用其中一种plyr函数来分割数据和自动创建单独的直方图(在2-3行代码中) – Maiasaura 2012-01-03 01:54:40

+0

谢谢@maiasaura,但ggplot解决方案正在使我的电脑流失,其中简单的情节是瞬间的。 – zach 2012-01-03 02:05:53