<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>刘思喆 @ 贝吉塔行星 &#187; google</title>
	<atom:link href="http://www.bjt.name/tag/google/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.bjt.name</link>
	<description>R 语言，数据挖掘，数据可视化</description>
	<lastBuildDate>Wed, 30 Nov 2011 15:43:30 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>2006年至今国内货币供应量的Motion Chart</title>
		<link>http://www.bjt.name/2011/07/money-supply-motion-char/</link>
		<comments>http://www.bjt.name/2011/07/money-supply-motion-char/#comments</comments>
		<pubDate>Sun, 17 Jul 2011 10:48:12 +0000</pubDate>
		<dc:creator>刘思喆</dc:creator>
				<category><![CDATA[图型展示]]></category>
		<category><![CDATA[chart]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[R 语言]]></category>
		<category><![CDATA[可视化]]></category>

		<guid isPermaLink="false">http://www.bjt.name/?p=10853</guid>
		<description><![CDATA[在2008年，第一届中国R语言会议上，来自于艾瑞咨询的张翔为大家展示了一组极具震撼力的泡泡图，而这段视频便是Hans Rosling 在2006年 TED 上的演讲，讲述的是1956年-2006年之间各国间的经济发展变化。虽然个人认为泡泡图的实现的技术并没有太多技术含量，但惊讶于Hans Rosling大智若愚的演讲能力，甚至再看完五六遍之后，仍然还会被其感染。 再后来， Hans Rosling将这款数据展示产品卖给了Google，而Google又将其整合到Visualisation API 里，于是我们可以调用Google的API来使用这些有趣的图形展示功能。 更令人鼓舞的是：前不久，Markus Gesmann, Castillo两位老大，写了googleVis这个R扩展包，将Hans Rosling的泡泡图同R语言完美的整合在了一起:) 下面就是在R语言里，通过googleVis包，对我国2006年至今的货币供应量（M0、M1、M2）Motion Chart（将横坐标设置为time以后，点击Play） 碎碎念：从泡泡的跳动上看，央行投放的货币供应量（亿元）在2009-2011年间，增加的最为剧烈，当然这个时间段也是房价近十年间增长最为迅速的两年。而现在呢，房市开始限购，国内房地产市场已经撑不住超发的货币，因此广泛的通货膨胀开始蔓延。引用郎咸平的几段话： 我们近几年发了76.5万亿的货币,是GDP的2.5倍,而美国的货币量除上GDP只是0.6,只有我们的四分之一 唯一的解释只能是货币的购买力在下降,这就是经济学里的通货膨胀 最后，关于googleVis包的使用请移步至这里。 相关文章： 用R实现马赛克拼图 R语言的代码规范 数据挖掘之R与SQL]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.bjt.name/wp-content/uploads/2011/07/motion-chart.png"><br />
</a>在2008年，第一届中国R语言会议上，来自于艾瑞咨询的张翔为大家展示了一组极具震撼力的泡泡图，而这段视频便是Hans Rosling 在2006年 <a href="http://www.ted.com/talks/hans_rosling_shows_the_best_stats_you_ve_ever_seen.html" rel="nofollow">TED</a> 上的演讲，讲述的是1956年-2006年之间各国间的经济发展变化。虽然个人认为泡泡图的实现的技术并没有太多技术含量，但惊讶于Hans Rosling大智若愚的演讲能力，甚至再看完五六遍之后，仍然还会被其感染。</p>
<p>再后来， Hans Rosling将这款数据展示产品卖给了Google，而Google又将其整合到<a href="http://code.google.com/apis/visualization/documentation/gallery.html" rel="nofollow">Visualisation API</a> 里，于是我们可以调用Google的API来使用这些有趣的图形展示功能。</p>
<p>更令人鼓舞的是：前不久，Markus Gesmann, Castillo两位老大，写了<a href="http://cran.r-project.org/web/packages/googleVis/" target="_blank">googleVis</a>这个R扩展包，将Hans Rosling的泡泡图同R语言完美的整合在了一起:)</p>
<p>下面就是在R语言里，通过<a href="http://cran.r-project.org/web/packages/googleVis/" target="_blank">googleVis</a>包，对我国2006年至今的货币供应量（M0、M1、M2）Motion Chart（将横坐标设置为time以后，点击Play）</p>
<!-- MotionChart generated in R 2.13.1 by googleVis 0.2.6 package -->
<!-- Sun Jul 17 17:21:01 2011 -->


<!-- jsHeader -->
<script type="text/javascript" src="http://www.google.com/jsapi">
</script>
<script type="text/javascript">
 
// jsData 
function gvisDataMotionChartIDcf1100d ()
{
  var data = new google.visualization.DataTable();
  var datajson =
[
 [
 "M2",
new Date(2011,5,1),
7.808e+05 
],
[
 "M2",
new Date(2011,4,1),
7.634e+05 
],
[
 "M2",
new Date(2011,3,1),
7.573e+05 
],
[
 "M2",
new Date(2011,2,1),
7.581e+05 
],
[
 "M2",
new Date(2011,1,1),
7.361e+05 
],
[
 "M2",
new Date(2011,0,1),
7.356e+05 
],
[
 "M2",
new Date(2010,11,1),
7.258e+05 
],
[
 "M2",
new Date(2010,10,1),
7.103e+05 
],
[
 "M2",
new Date(2010,9,1),
6.998e+05 
],
[
 "M2",
new Date(2010,8,1),
6.964e+05 
],
[
 "M2",
new Date(2010,7,1),
6.875e+05 
],
[
 "M2",
new Date(2010,6,1),
6.741e+05 
],
[
 "M2",
new Date(2010,5,1),
6.739e+05 
],
[
 "M2",
new Date(2010,4,1),
6.634e+05 
],
[
 "M2",
new Date(2010,3,1),
6.566e+05 
],
[
 "M2",
new Date(2010,2,1),
6.5e+05 
],
[
 "M2",
new Date(2010,1,1),
6.36e+05 
],
[
 "M2",
new Date(2010,0,1),
6.251e+05 
],
[
 "M2",
new Date(2009,11,1),
6.062e+05 
],
[
 "M2",
new Date(2009,10,1),
5.946e+05 
],
[
 "M2",
new Date(2009,9,1),
5.862e+05 
],
[
 "M2",
new Date(2009,8,1),
5.854e+05 
],
[
 "M2",
new Date(2009,7,1),
5.767e+05 
],
[
 "M2",
new Date(2009,6,1),
5.731e+05 
],
[
 "M2",
new Date(2009,5,1),
5.6892e+05 
],
[
 "M2",
new Date(2009,4,1),
5.4824e+05 
],
[
 "M2",
new Date(2009,3,1),
5.405e+05 
],
[
 "M2",
new Date(2009,2,1),
5.306e+05 
],
[
 "M2",
new Date(2009,1,1),
5.071e+05 
],
[
 "M2",
new Date(2009,0,1),
4.9614e+05 
],
[
 "M2",
new Date(2008,11,1),
4.7517e+05 
],
[
 "M2",
new Date(2008,10,1),
4.5864e+05 
],
[
 "M2",
new Date(2008,9,1),
4.5313e+05 
],
[
 "M2",
new Date(2008,8,1),
4.529e+05 
],
[
 "M2",
new Date(2008,7,1),
4.4885e+05 
],
[
 "M2",
new Date(2008,6,1),
4.4636e+05 
],
[
 "M2",
new Date(2008,5,1),
4.4314e+05 
],
[
 "M2",
new Date(2008,4,1),
4.3622e+05 
],
[
 "M2",
new Date(2008,3,1),
4.2931e+05 
],
[
 "M2",
new Date(2008,2,1),
4.2305e+05 
],
[
 "M2",
new Date(2008,1,1),
4.2104e+05 
],
[
 "M2",
new Date(2008,0,1),
4.1785e+05 
],
[
 "M2",
new Date(2007,11,1),
4.034e+05 
],
[
 "M2",
new Date(2007,10,1),
3.9976e+05 
],
[
 "M2",
new Date(2007,9,1),
3.942e+05 
],
[
 "M2",
new Date(2007,8,1),
3.931e+05 
],
[
 "M2",
new Date(2007,7,1),
3.8721e+05 
],
[
 "M2",
new Date(2007,6,1),
3.8388e+05 
],
[
 "M2",
new Date(2007,5,1),
3.7783e+05 
],
[
 "M2",
new Date(2007,4,1),
3.6972e+05 
],
[
 "M2",
new Date(2007,3,1),
3.6733e+05 
],
[
 "M2",
new Date(2007,2,1),
3.641e+05 
],
[
 "M2",
new Date(2007,1,1),
3.5866e+05 
],
[
 "M2",
new Date(2007,0,1),
3.515e+05 
],
[
 "M2",
new Date(2006,11,1),
3.4558e+05 
],
[
 "M2",
new Date(2006,10,1),
3.375e+05 
],
[
 "M2",
new Date(2006,9,1),
3.3275e+05 
],
[
 "M2",
new Date(2006,8,1),
3.3187e+05 
],
[
 "M2",
new Date(2006,7,1),
3.2789e+05 
],
[
 "M2",
new Date(2006,6,1),
3.2401e+05 
],
[
 "M2",
new Date(2006,5,1),
3.2276e+05 
],
[
 "M2",
new Date(2006,4,1),
3.1671e+05 
],
[
 "M2",
new Date(2006,3,1),
3.137e+05 
],
[
 "M2",
new Date(2006,2,1),
3.1049e+05 
],
[
 "M2",
new Date(2006,1,1),
3.0452e+05 
],
[
 "M2",
new Date(2006,0,1),
3.0357e+05 
],
[
 "M1",
new Date(2011,5,1),
2.747e+05 
],
[
 "M1",
new Date(2011,4,1),
2.693e+05 
],
[
 "M1",
new Date(2011,3,1),
2.668e+05 
],
[
 "M1",
new Date(2011,2,1),
2.663e+05 
],
[
 "M1",
new Date(2011,1,1),
2.591e+05 
],
[
 "M1",
new Date(2011,0,1),
2.631e+05 
],
[
 "M1",
new Date(2010,11,1),
2.666e+05 
],
[
 "M1",
new Date(2010,10,1),
2.594e+05 
],
[
 "M1",
new Date(2010,9,1),
2.533e+05 
],
[
 "M1",
new Date(2010,8,1),
2.438e+05 
],
[
 "M1",
new Date(2010,7,1),
2.443e+05 
],
[
 "M1",
new Date(2010,6,1),
2.407e+05 
],
[
 "M1",
new Date(2010,5,1),
2.406e+05 
],
[
 "M1",
new Date(2010,4,1),
2.365e+05 
],
[
 "M1",
new Date(2010,3,1),
2.339e+05 
],
[
 "M1",
new Date(2010,2,1),
2.294e+05 
],
[
 "M1",
new Date(2010,1,1),
2.243e+05 
],
[
 "M1",
new Date(2010,0,1),
2.296e+05 
],
[
 "M1",
new Date(2009,11,1),
2.2e+05 
],
[
 "M1",
new Date(2009,10,1),
2.125e+05 
],
[
 "M1",
new Date(2009,9,1),
2.075e+05 
],
[
 "M1",
new Date(2009,8,1),
2.017e+05 
],
[
 "M1",
new Date(2009,7,1),
2.004e+05 
],
[
 "M1",
new Date(2009,6,1),
1.959e+05 
],
[
 "M1",
new Date(2009,5,1),
1.9314e+05 
],
[
 "M1",
new Date(2009,4,1),
1.82e+05 
],
[
 "M1",
new Date(2009,3,1),
1.7821e+05 
],
[
 "M1",
new Date(2009,2,1),
1.765e+05 
],
[
 "M1",
new Date(2009,1,1),
1.665e+05 
],
[
 "M1",
new Date(2009,0,1),
1.6521e+05 
],
[
 "M1",
new Date(2008,11,1),
1.6622e+05 
],
[
 "M1",
new Date(2008,10,1),
1.5783e+05 
],
[
 "M1",
new Date(2008,9,1),
1.5719e+05 
],
[
 "M1",
new Date(2008,8,1),
1.5575e+05 
],
[
 "M1",
new Date(2008,7,1),
1.5689e+05 
],
[
 "M1",
new Date(2008,6,1),
1.5499e+05 
],
[
 "M1",
new Date(2008,5,1),
1.5482e+05 
],
[
 "M1",
new Date(2008,4,1),
1.5334e+05 
],
[
 "M1",
new Date(2008,3,1),
1.5169e+05 
],
[
 "M1",
new Date(2008,2,1),
1.5087e+05 
],
[
 "M1",
new Date(2008,1,1),
1.5018e+05 
],
[
 "M1",
new Date(2008,0,1),
1.5487e+05 
],
[
 "M1",
new Date(2007,11,1),
1.5252e+05 
],
[
 "M1",
new Date(2007,10,1),
1.4801e+05 
],
[
 "M1",
new Date(2007,9,1),
1.4465e+05 
],
[
 "M1",
new Date(2007,8,1),
1.4259e+05 
],
[
 "M1",
new Date(2007,7,1),
1.4099e+05 
],
[
 "M1",
new Date(2007,6,1),
1.3624e+05 
],
[
 "M1",
new Date(2007,5,1),
1.3585e+05 
],
[
 "M1",
new Date(2007,4,1),
1.3028e+05 
],
[
 "M1",
new Date(2007,3,1),
1.2768e+05 
],
[
 "M1",
new Date(2007,2,1),
1.2788e+05 
],
[
 "M1",
new Date(2007,1,1),
1.2626e+05 
],
[
 "M1",
new Date(2007,0,1),
1.2848e+05 
],
[
 "M1",
new Date(2006,11,1),
1.2603e+05 
],
[
 "M1",
new Date(2006,10,1),
1.2164e+05 
],
[
 "M1",
new Date(2006,9,1),
1.1836e+05 
],
[
 "M1",
new Date(2006,8,1),
1.1681e+05 
],
[
 "M1",
new Date(2006,7,1),
1.1485e+05 
],
[
 "M1",
new Date(2006,6,1),
1.1265e+05 
],
[
 "M1",
new Date(2006,5,1),
1.1234e+05 
],
[
 "M1",
new Date(2006,4,1),
1.0922e+05 
],
[
 "M1",
new Date(2006,3,1),
1.0639e+05 
],
[
 "M1",
new Date(2006,2,1),
1.0674e+05 
],
[
 "M1",
new Date(2006,1,1),
1.0436e+05 
],
[
 "M1",
new Date(2006,0,1),
1.0725e+05 
],
[
 "M0",
new Date(2011,5,1),
 44500 
],
[
 "M0",
new Date(2011,4,1),
 44600 
],
[
 "M0",
new Date(2011,3,1),
 45500 
],
[
 "M0",
new Date(2011,2,1),
 44800 
],
[
 "M0",
new Date(2011,1,1),
 47300 
],
[
 "M0",
new Date(2011,0,1),
 58100 
],
[
 "M0",
new Date(2010,11,1),
 44600 
],
[
 "M0",
new Date(2010,10,1),
 42300 
],
[
 "M0",
new Date(2010,9,1),
 41600 
],
[
 "M0",
new Date(2010,8,1),
 41900 
],
[
 "M0",
new Date(2010,7,1),
 39900 
],
[
 "M0",
new Date(2010,6,1),
 39500 
],
[
 "M0",
new Date(2010,5,1),
 38900 
],
[
 "M0",
new Date(2010,4,1),
 38700 
],
[
 "M0",
new Date(2010,3,1),
 39700 
],
[
 "M0",
new Date(2010,2,1),
 39100 
],
[
 "M0",
new Date(2010,1,1),
 42900 
],
[
 "M0",
new Date(2010,0,1),
 40800 
],
[
 "M0",
new Date(2009,11,1),
 38200 
],
[
 "M0",
new Date(2009,10,1),
 36300 
],
[
 "M0",
new Date(2009,9,1),
 35700 
],
[
 "M0",
new Date(2009,8,1),
 36800 
],
[
 "M0",
new Date(2009,7,1),
 34400 
],
[
 "M0",
new Date(2009,6,1),
 34200 
],
[
 "M0",
new Date(2009,5,1),
 33641 
],
[
 "M0",
new Date(2009,4,1),
 33600 
],
[
 "M0",
new Date(2009,3,1),
 34257 
],
[
 "M0",
new Date(2009,2,1),
 33700 
],
[
 "M0",
new Date(2009,1,1),
 35100 
],
[
 "M0",
new Date(2009,0,1),
 41082 
],
[
 "M0",
new Date(2008,11,1),
 34219 
],
[
 "M0",
new Date(2008,10,1),
 31607 
],
[
 "M0",
new Date(2008,9,1),
 31318 
],
[
 "M0",
new Date(2008,8,1),
 31725 
],
[
 "M0",
new Date(2008,7,1),
 30852 
],
[
 "M0",
new Date(2008,6,1),
 30687 
],
[
 "M0",
new Date(2008,5,1),
 30181 
],
[
 "M0",
new Date(2008,4,1),
 30169 
],
[
 "M0",
new Date(2008,3,1),
 30790 
],
[
 "M0",
new Date(2008,2,1),
 30433 
],
[
 "M0",
new Date(2008,1,1),
 32454 
],
[
 "M0",
new Date(2008,0,1),
 36673 
],
[
 "M0",
new Date(2007,11,1),
 30334 
],
[
 "M0",
new Date(2007,10,1),
 28988 
],
[
 "M0",
new Date(2007,9,1),
 28318 
],
[
 "M0",
new Date(2007,8,1),
 29031 
],
[
 "M0",
new Date(2007,7,1),
 27822 
],
[
 "M0",
new Date(2007,6,1),
 27326 
],
[
 "M0",
new Date(2007,5,1),
 26881 
],
[
 "M0",
new Date(2007,4,1),
 26728 
],
[
 "M0",
new Date(2007,3,1),
 27814 
],
[
 "M0",
new Date(2007,2,1),
 27388 
],
[
 "M0",
new Date(2007,1,1),
 30628 
],
[
 "M0",
new Date(2007,0,1),
 27949 
],
[
 "M0",
new Date(2006,11,1),
 27073 
],
[
 "M0",
new Date(2006,10,1),
 25527 
],
[
 "M0",
new Date(2006,9,1),
 24964 
],
[
 "M0",
new Date(2006,8,1),
 25687 
],
[
 "M0",
new Date(2006,7,1),
 24185 
],
[
 "M0",
new Date(2006,6,1),
 23753 
],
[
 "M0",
new Date(2006,5,1),
 23469 
],
[
 "M0",
new Date(2006,4,1),
 23465 
],
[
 "M0",
new Date(2006,3,1),
 24156 
],
[
 "M0",
new Date(2006,2,1),
 23472 
],
[
 "M0",
new Date(2006,1,1),
 24482 
],
[
 "M0",
new Date(2006,0,1),
 29310 
] 
];
data.addColumn('string','Money.Supply');
data.addColumn('date','date');
data.addColumn('number','Total.Amount');
data.addRows(datajson);
return(data);
}
 
// jsDrawChart
function drawChartMotionChartIDcf1100d() {
  var data = gvisDataMotionChartIDcf1100d()
  var chart = new google.visualization.MotionChart(
   document.getElementById('MotionChartIDcf1100d')
  );
  var options ={};
options["width"] =    700;
options["height"] =    500;
  chart.draw(data,options);
}
 
// jsDisplayChart 
function displayChartMotionChartIDcf1100d()
{
  google.load("visualization", "1", { packages:["motionchart"] }); 
  google.setOnLoadCallback(drawChartMotionChartIDcf1100d);
}
 
// jsChart 
displayChartMotionChartIDcf1100d()
 
<!-- jsFooter -->  
//-->
</script>
 
<!-- divChart -->
<div id="MotionChartIDcf1100d"
  style="width: 600px; height: 600px;">
</div>
<p>碎碎念：从泡泡的跳动上看，央行投放的货币供应量（亿元）在2009-2011年间，增加的最为剧烈，当然这个时间段也是房价近十年间增长最为迅速的两年。而现在呢，房市开始限购，国内房地产市场已经撑不住超发的货币，因此广泛的通货膨胀开始蔓延。引用郎咸平的几段话：</p>
<p style="padding-left: 30px;"><strong>我们近几年发了76.5万亿的货币,是GDP的2.5倍,而美国的货币量除上GDP只是0.6,只有我们的四分之一</strong></p>
<p style="padding-left: 30px;"><strong>唯一的解释只能是货币的购买力在下降,这就是经济学里的通货膨胀</strong></p>
<p>最后，关于<a href="http://cran.r-project.org/web/packages/googleVis/" target="_blank">googleVis</a>包的使用请移步至<a href="http://code.google.com/p/google-motion-charts-with-r/" target="_blank">这里</a>。<br />
<h3 class='related_post_title'>相关文章：</h3>
<ul class='related_post'>
<li><a href='http://www.bjt.name/2011/06/mosaic-plot-with-r/' title='用R实现马赛克拼图'>用R实现马赛克拼图</a></li>
<li><a href='http://www.bjt.name/2010/11/google-r-code-style/' title='R语言的代码规范'>R语言的代码规范</a></li>
<li><a href='http://www.bjt.name/2011/08/r-and-sql-datamining/' title='数据挖掘之R与SQL'>数据挖掘之R与SQL</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.bjt.name/2011/07/money-supply-motion-char/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>R语言的代码规范</title>
		<link>http://www.bjt.name/2010/11/google-r-code-style/</link>
		<comments>http://www.bjt.name/2010/11/google-r-code-style/#comments</comments>
		<pubDate>Sun, 21 Nov 2010 05:48:47 +0000</pubDate>
		<dc:creator>刘思喆</dc:creator>
				<category><![CDATA[技巧随笔]]></category>
		<category><![CDATA[emacs]]></category>
		<category><![CDATA[ess]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[R 语言]]></category>
		<category><![CDATA[tips]]></category>

		<guid isPermaLink="false">http://www.bjt.name/?p=10695</guid>
		<description><![CDATA[前些天在准备中国第三届R语言会议（上海）的时候，翻到以前记录在Google Notebook里的一些材料，一篇是关于Google Codes关于R代码的规范，非常值得借鉴。 规范这个东西平时多多注意一些还是有好处的，就和作文一样，漂亮的字体总能有不错的加分。这里就不翻译原文了，摘一些 tips 供大家参考： 1、一般性规则 避免使用attach 写函数是尽量少的使用stop() 定义S3和S4的对象不要混在一起使用 2、文件命名 以.r结束的文件，尽可能的增加信息在文件名里面，比如 Good: predict_ad_revenue.R Bad: foo.R 3、变量名和函数命名规则 # 注意，在R环境下，大小写是敏感的 变量： Good: avg.clicks Bad: avg_Clicks, avgClicks 函数名: Good: CalculateAvgClicks Bad: calculate_avg_clicks, calculateAvgClicks 4、字符间隔 这个可能是最快的，使代码外观变”漂亮”的规则了 Good: tabPrior &#60;- table(df[df$daysFromOpt &#60; 0, "campaignid"]) Bad: tabPrior&#60;-table(df[df$daysFromOpt&#60;0,"campaignid"]) 这里包含了赋值、逻辑符号以及逗点分隔。 # 在R里面尽量少用 = 在函数里： Good: if (debug) Bad: if(debug) 5、代码组织 尤其是做项目的话，以下信息是必须有的： 版权声明 <a href='http://www.bjt.name/2010/11/google-r-code-style/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>前些天在准备<a href="http://cos.name/chinar/chinar-2010/" target="_blank">中国第三届R语言会议（上海）</a>的时候，翻到以前记录在Google Notebook里的一些材料，一篇是关于Google Codes关于<a href="http://google-styleguide.googlecode.com/svn/trunk/google-r-style.html">R代码的规范</a>，非常值得借鉴。</p>
<p>规范这个东西平时多多注意一些还是有好处的，就和作文一样，漂亮的字体总能有不错的加分。这里就不翻译原文了，摘一些 tips 供大家参考：</p>
<h3>1、一般性规则</h3>
<ul>
<li>避免使用attach</li>
<li>写函数是尽量少的使用stop()</li>
<li>定义S3和S4的对象不要混在一起使用</li>
</ul>
<h3>2、文件命名</h3>
<p>以.r结束的文件，尽可能的增加信息在文件名里面，比如</p>
<p><span style="text-decoration: underline;"><strong>Good:</strong></span></p>
<p>predict_ad_revenue.R</p>
<p><span style="text-decoration: underline;"><strong>Bad:</strong></span></p>
<p>foo.R</p>
<h3>3、变量名和函数命名规则</h3>
<p># 注意，在R环境下，大小写是敏感的</p>
<p>变量：</p>
<p><span style="text-decoration: underline;"><strong>Good:</strong></span></p>
<p>avg.clicks</p>
<p><span style="text-decoration: underline;"><strong>Bad:</strong></span></p>
<p>avg_Clicks, avgClicks</p>
<p>函数名:</p>
<p><span style="text-decoration: underline;"><strong>Good:</strong></span></p>
<p><span style="font-family: monospace;"> CalculateAvgClicks</span></p>
<p><span style="text-decoration: underline;"><strong>Bad:</strong></span></p>
<p>calculate_avg_clicks, <code>calculateAvgClicks</code></p>
<h3>4、字符间隔</h3>
<p><span style="color: #ff0000;">这个可能是最快的，使代码外观变”漂亮”的规则了</span></p>
<p><span style="text-decoration: underline;"><strong>Good:</strong></span></p>
<p>tabPrior &lt;- table(df[df$daysFromOpt &lt; 0, "campaignid"])</p>
<p><span style="text-decoration: underline;"><strong>Bad:</strong></span></p>
<p>tabPrior&lt;-table(df[df$daysFromOpt&lt;0,"campaignid"])</p>
<p>这里包含了赋值、逻辑符号以及逗点分隔。</p>
<p># 在R里面尽量少用 =</p>
<p>在函数里：</p>
<p><span style="text-decoration: underline;"><strong>Good:</strong></span></p>
<p>if (debug)</p>
<p><span style="text-decoration: underline;"><strong>Bad:</strong></span></p>
<p>if(debug)</p>
<h3>5、代码组织</h3>
<p>尤其是做项目的话，以下信息是必须有的：</p>
<ol>
<li>版权声明</li>
<li>作者注释</li>
<li>文件说明，项目目的，输入和输出的说明</li>
<li><code>source()</code> 和 <code>library()</code> 说明</li>
<li>函数定义</li>
<li>其他</li>
</ol>
<h3>6、注释</h3>
<p>养成良好的注释习惯</p>
<ul>
<li>单行注释以 # 开头，加一个空格</li>
<li>短注释需要在代码后面空两格，然后 # ，再加一个空格</li>
</ul>
<p>最后再一次推荐使用Emacs+ESS，虽然我已经折腾n多次了～～</p>
<p>永久链接：http://www.bjt.name/2010/11/google-r-code-style<br />
<h3 class='related_post_title'>相关文章：</h3>
<ul class='related_post'>
<li><a href='http://www.bjt.name/2011/07/money-supply-motion-char/' title='2006年至今国内货币供应量的Motion Chart'>2006年至今国内货币供应量的Motion Chart</a></li>
<li><a href='http://www.bjt.name/2011/08/r-and-sql-datamining/' title='数据挖掘之R与SQL'>数据挖掘之R与SQL</a></li>
<li><a href='http://www.bjt.name/2011/06/beautiful-math-triangle-r/' title='一个美丽的三角形'>一个美丽的三角形</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.bjt.name/2010/11/google-r-code-style/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Google，其实不想走</title>
		<link>http://www.bjt.name/2010/01/google-say-goodbye/</link>
		<comments>http://www.bjt.name/2010/01/google-say-goodbye/#comments</comments>
		<pubDate>Wed, 13 Jan 2010 16:15:06 +0000</pubDate>
		<dc:creator>刘思喆</dc:creator>
				<category><![CDATA[互联网]]></category>
		<category><![CDATA[baidu]]></category>
		<category><![CDATA[gmail]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[tts]]></category>

		<guid isPermaLink="false">http://www.bjt.name/?p=10504</guid>
		<description><![CDATA[以前就想写一篇博客，讲述 Google 给我们生活带来的便利，这不，再不写，也许再也没有机会了。 为什么说没机会了，是因为 Google 官方博客的一篇文章——A new approach to China（抱歉，因为是订阅的内容，已经被墙了，我实在不能找到链接，不过可以访问这里，中文翻译的和原文），也许真的有一天 Google 会撇下我们。 说到 Google，感慨颇深。以前在人大读书的时候，受舍友影响，从来不知道有其他的搜索引擎，不论干啥，第一反应就是 Google 之。后来，Google 进入中国，正式提出”谷歌“的中文名称，当时我还笑话 Google 的中文名太傻。而现在呢，患有严重的 Google 依赖综合征，算是交代了。 www.google.com 最适宜对英文资料的搜索，很多童鞋对 google.com 和 google.cn 感觉一样，实际上是有区别的。用一句很低俗很低俗的话来说就是，google.cn 是被阉割过的 Google（虽然仍然比 baidu 好很多）。举个最简单的例子，google.cn 是没有账户信息的，也就是说，你不能通过 google.cn 来登录 Google 的服务。而且似乎在中国，在浏览器中使用 Google 会默认指向 Google 中国。再换句话说，我们一般会把 Google 认为是一个很普通的搜索引擎，但实际上如果登录 Google，会发现别有洞天。 下面我列举一些每天相伴我的，便利的 Google 服务： 资讯类： Gmail：Google 的 一款优秀的 mail。还记得最早 Google 开放邮件系统，没有独立注册的地方，必须通过其他人邀请。 Google Reader：每天开电脑后，要做的第二件事（第一件事是 <a href='http://www.bjt.name/2010/01/google-say-goodbye/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>以前就想写一篇博客，讲述 Google 给我们生活带来的便利，这不，再不写，也许再也没有机会了。</p>
<p>为什么说没机会了，是因为 Google 官方博客的一篇文章——A new approach to China（抱歉，因为是订阅的内容，已经被墙了，我实在不能找到链接，不过可以访问<a href="http://blog.sina.com.cn/s/blog_46f180bc0100h4mx.html" target="_blank">这里</a>，中文翻译的和原文），也许真的有一天 Google 会<a href="http://pyzxs.blog.sohu.com/142160649.html" target="_blank">撇下我们</a>。</p>
<p>说到 Google，感慨颇深。以前在人大读书的时候，受舍友影响，从来不知道有其他的搜索引擎，不论干啥，第一反应就是 Google 之。后来，Google 进入中国，正式提出”谷歌“的中文名称，当时我还笑话 Google 的中文名太傻。而现在呢，患有严重的 Google 依赖综合征，算是交代了。</p>
<p>www.google.com 最适宜对英文资料的搜索，很多童鞋对 google.com 和 google.cn 感觉一样，实际上是有区别的。用一句很低俗很低俗的话来说就是，google.cn 是被阉割过的 Google（虽然仍然比 baidu 好很多）。举个最简单的例子，google.cn 是没有账户信息的，也就是说，你不能通过 google.cn 来登录 Google 的服务。而且似乎在中国，在浏览器中使用 Google 会默认指向 Google 中国。再换句话说，我们一般会把 Google 认为是一个很普通的搜索引擎，但实际上如果登录 Google，会发现别有洞天。</p>
<p>下面我列举一些每天相伴我的，便利的 Google 服务：</p>
<h1>资讯类：</h1>
<ul>
<li>Gmail：Google 的 一款优秀的 mail。还记得最早 Google 开放邮件系统，没有独立注册的地方，必须通过其他人邀请。</li>
<li>Google Reader：每天开电脑后，要做的第二件事（第一件事是 foxmail 收取 gmail）。信息需要捕捉，使用书签记录互联网信息那是 web1.0 时代，现在我们有 RSS，Google Reader 可以带领我们翻墙去学统计，sigh！不过有个问题就是，如果你恰好在某个站点看到了一个很好的文章，而上面又有一个pdf链接……点击，浏览器报告错误链接……噢，那是在墙外。哪位童鞋有好办法解决，请告之。</li>
<li>Google Group：顾名思义，是小组讨论的论坛，很多志同道合的童鞋发言交流思想的地方。比如，申请了 <a href="http://groups.google.com/group/pongba?hl=zh-CN"><span>TopLanguage</span></a>，<a href="http://groups.google.com/group/cos-r-team?hl=zh-CN"><span>COS R Team</span></a> 等，不过我更倾向把它归为 maillist 的一种，就和 R 的<a href="http://www.r-project.org/mail.html" target="banner">Mailing Lists</a> 一样。</li>
<li>Google Alert：Google 中国翻译成“快讯”，恰到好处。它能告诉你每天最新发生的事情，当然发生的事情是你用关键词来定义的。</li>
</ul>
<h1>办公类：</h1>
<ul>
<li>Google Notebook：真正意义的互联网笔记本。</li>
<li>Google Docs：美国华盛顿特区政府官方使用的办公软件。挺好的，国内不知为啥又被封掉。</li>
<li>Google Talk：非常适合办公环境的即时聊天软件，聊天记录保存在 Gmail 帐号里，支持语音功能，同时有 gmail 邮件通知。</li>
<li>Google code：直接参考 R 的 sqldf 包 http://code.google.com/p/sqldf/</li>
</ul>
<h1>网站类：</h1>
<ul>
<li>Google Analytics：做网站的朋友肯定对它非常熟悉。</li>
<li>Google calendar：日程，合理规划时间是成功的必要条件。</li>
<li>Google Site 和 Google pages：功能上感觉比较类似，都是用来做站点的，但都不能用了，sigh again!</li>
<li><a href="http://picasaweb.google.com/">Goolge Picasa：</a>图片分享，也不能用了</li>
<li>Google blog：其实挺好的 blog，由于众所周知的原因，被封了（偶尔也会能上）。唯一可惜的是，上面有很多不错的统计资源。</li>
</ul>
<h1>软件类：</h1>
<ul>
<li>Google 输入法：拼音输入法，表现中规中矩，可以同步用户词典。</li>
<li>Goolge 浏览器：感觉和 firefox 差不多，当然远远比 Internet explore 好很多很多辈（强调一下——不是倍）。</li>
<li>Google 词霸：自从有个这个，我就不再买正版的金山词霸。配合 <a href="http://www.neospeech.com/" target="_blank">neospeech</a> 的 TTS （<em>text-to-speech</em>），挺舒服 ^_^</li>
<li>Google Earth：这个就更不用说了吧，我能通过它找到我家屋顶。</li>
</ul>
<p>我这里只是简单了列了一下常用的 Google 服务，像一些比如 Google 学术搜索、Google 生活搜索、地图、桌面之类的我都没有提到，但它们都在或多或少的影响着我们的生活。</p>
<p>还是那句话——我患有严重的 Google 依赖综合征。<br />
<h3 class='related_post_title'>相关文章：</h3>
<ul class='related_post'>
<li><a href='http://www.bjt.name/2011/07/money-supply-motion-char/' title='2006年至今国内货币供应量的Motion Chart'>2006年至今国内货币供应量的Motion Chart</a></li>
<li><a href='http://www.bjt.name/2011/05/baidu-singers-relationships/' title='百度如是说——中国两百强流行歌手关系'>百度如是说——中国两百强流行歌手关系</a></li>
<li><a href='http://www.bjt.name/2010/11/google-r-code-style/' title='R语言的代码规范'>R语言的代码规范</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.bjt.name/2010/01/google-say-goodbye/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

