R格式函数与莱迪思包

时间:2014-07-26 20:18:08

标签: r histogram lattice

我正在学习R.我正在读一本具有以下hist函数的书,它基本上从直方图中删除0值和值> = 1000。

问题是我不明白代码说的是什么,本书没有解释它。

()内有什么条件,为什么是!0指定了两次?还有另一种方法来编写这个更直观的代码吗?我正在使用格子包。

非常感谢您的帮助!

hist(don$TGiving[don$TGiving!=0][don$TGiving[don$TGiving!=0]<=10000])

2 个答案:

答案 0 :(得分:1)

这是一种非常巧妙的方式。如果您创建了一个临时变量,并且该表达式的第一部分删除了低于0的值,然后使用它,那么也许更容易看到发生了什么。

 temp <- don$TGiving[don$TGiving!=0]  # remove items below 0
 hist( temp[ temp  < 1000 ] )         # remove items above 1000  and then plot

答案 1 :(得分:1)

如果您确实想使用lattice,则应使用histogram()代替hist()subset()也很有用。

 set.seed(101)
 don <- data.frame(TGiving=round(rgamma(1000,shape=5,scale=100)))
 library(lattice)
 histogram(~TGiving,data=subset(don,TGiving!=0 & TGiving<1000))