如何学习R语言

2024-05-06 09:57

1. 如何学习R语言

在初学C语言时,可能会遇到有些问题理解不透,或者表达方式与以往数学学习中不同(如运算符等),这就要求不气馁,不明白的地方多问多想,鼓足勇气进行学习,待学完后面的章节知识,前面的问题也就迎刃而解了,这一方面我感觉是我们同学最欠缺,大多学不好的就是因为一开始遇到困难就放弃,曾经和好多同学谈他的问题,回答是听不懂、不想听、放弃这样三个过程,我反问,这节课你听过课吗?回答又是没有,根本就没听过课,怎么说自己听不懂呢?相应的根本就没学习,又谈何学的好? 
学习C语言始终要记住“曙光在前头”和“千金难买回头看”,“千金难买回头看”是学习知识的重要方法,就是说,学习后面的知识,不要忘了回头弄清遗留下的问题和加深理解前面的知识,这是我们学生最不易做到的,然而却又是最重要的。学习C语言就是要经过几个反复,才能前后贯穿,积累应该掌握的C知识。 
那么,我们如何学好《C程序设计》呢? 
一.学好C语言的运算符和运算顺序 
这是学好《C程序设计》的基础,C语言的运算非常灵活,功能十分丰富,运算种类远多于其它程序设计语言。在表达式方面较其它程序语言更为简洁,如自加、自减、逗号运算和三目运算使表达式更为简单,但初学者往往会觉的这种表达式难读,关键原因就是对运算符和运算顺序理解不透不全。当多种不同运算组成一个运算表达式,即一个运算式中出现多种运算符时,运算的优先顺序和结合规则显得十分重要。在学习中,只要我们对此合理进行分类,找出它们与我们在数学中所学到运算之间的不同点之后,记住这些运算也就不困难了,有些运算符在理解后更会牢记心中,将来用起来得心应手,而有些可暂时放弃不记,等用到时再记不迟。 
先要明确运算符按优先级不同分类,《C程序设计》运算符可分为15种优先级,从高到低,优先级为1 ~ 15,除第2、3级和第14级为从右至左结合外,其它都是从左至右结合,它决定同级运算符的运算顺序. 
二.学好C语言的四种程序结构 
(1)顺序结构 
顺序结构的程序设计是最简单的,只要按照解决问题的顺序写出相应的语句就行,它的执行顺序是自上而下,依次执行。 
例如;a = 3,b = 5,现交换a,b的值,这个问题就好像交换两个杯子水,这当然要用到第三个杯子,假如第三个杯子是c,那么正确的程序为: c = a; a = b; b = c; 执行结果是a = 5,b = c = 3如果改变其顺序,写成:a = b; c = a; b = c; 则执行结果就变成a = b = c = 5,不能达到预期的目的,初学者最容易犯这种错误。 顺序结构可以独立使用构成一个简单的完整程序,常见的输入、计算,输出三步曲的程序就是顺序结构,例如计算圆的面积,其程序的语句顺序就是输入圆的半径r,计算s = 3.14159*r*r,输出圆的面积s。不过大多数情况下顺序结构都是作为程序的一部分,与其它结构一起构成一个复杂的程序,例如分支结构中的复合语句、循环结构中的循环体等。 
(2) 分支结构 
顺序结构的程序虽然能解决计算、输出等问题,但不能做判断再选择。对于要先做判断再选择的问题就要使用分支结构。分支结构的执行是依据一定的条件选择执行路径,而不是严格按照语句出现的物理顺序。分支结构的程序设计方法的关键在于构造合适的分支条件和分析程序流程,根据不同的程序流程选择适当的分支语句。分支结构适合于带有逻辑或关系比较等条件判断的计算,设计这类程序时往往都要先绘制其程序流程图,然后根据程序流程写出源程序,这样做把程序设计分析与语言分开,使得问题简单化,易于理解。程序流程图是根据解题分析所绘制的程序执行流程图。 
学习分支结构不要被分支嵌套所迷惑,只要正确绘制出流程图,弄清各分支所要执行的功能,嵌套结构也就不难了。嵌套只不过是分支中又包括分支语句而已,不是新知识,只要对双分支的理解清楚,分支嵌套是不难的。下面我介绍几种基本的分支结构。 
①if(条件) 
{ 
分支体 
} 
这种分支结构中的分支体可以是一条语句,此时“{ }”可以省略,也可以是多条语句即复合语句。它有两条分支路径可选,一是当条件为真,执行分支体,否则跳过分支体,这时分支体就不会执行。如:要计算x的绝对值,根据绝对值定义,我们知道,当x>=0时,其绝对值不变,而x<0时其绝对值是为x的反号,因此程序段为:if(x<0) x=-x; 
②if(条件) 
{分支1} 
else 
{分支2} 
这是典型的分支结构,如果条件成立,执行分支1,否则执行分支2,分支1和分支2都可以是1条或若干条语句构成。如:求ax^2+bx+c=0的根 
分析:因为当b^2-4ac>=0时,方程有两个实根,否则(b^2-4ac<0)有两个共轭复根。其程序段如下: 

d=b*b-4*a*c; 
if(d>=0) 
{x1=(-b+sqrt(d))/2a; 
x1=(-b-sqrt(d))/2a; 
printf(“x1=%8.4f,x2=%8.4f\n”,x1,x2); 
} 
else 
{r=-b/(2*a); 
i =sqrt(-d)/(2*a); 
printf(“x1=%8.4f+%8.4fi\n”r, i); 
printf(“x2=%8.4f-%8.4fi\n”r,i) 
} 
③嵌套分支语句:其语句格式为: 
if(条件1) {分支1}; 
else if(条件2) {分支2} 
else if(条件3) {分支3} 
…… 
else if(条件n) {分支n} 
else {分支n+1} 
嵌套分支语句虽可解决多个入口和出口的问题,但超过3重嵌套后,语句结构变得非常复杂,对于程序的阅读和理解都极为不便,建议嵌套在3重以内,超过3重可以用下面的语句。 
④switch开关语句:该语句也是多分支选择语句,到底执行哪一块,取决于开关设置,也就是表达式的值与常量表达式相匹配的那一路,它不同if…else 语句,它的所有分支都是并列的,程序执行时,由第一分支开始查找,如果相匹配,执行其后的块,接着执行第2分支,第3分支……的块,直到遇到break语句;如果不匹配,查找下一个分支是否匹配。这个语句在应用时要特别注意开关条件的合理设置以及break语句的合理应用。 
(3)循环结构: 
循环结构可以减少源程序重复书写的工作量,用来描述重复执行某段算法的问题,这是程序设计中最能发挥计算机特长的程序结构,C语言中提供四种循环,即goto循环、while循环、do –while循环和for循环。四种循环可以用来处理同一问题,一般情况下它们可以互相代替换,但一般不提倡用goto循环,因为强制改变程序的顺序经常会给程序的运行带来不可预料的错误,在学习中我们主要学习while、do…while、for三种循环。常用的三种循环结构学习的重点在于弄清它们相同与不同之处,以便在不同场合下使用,这就要清楚三种循环的格式和执行顺序,将每种循环的流程图理解透彻后就会明白如何替换使用,如把while循环的例题,用for语句重新编写一个程序,这样能更好地理解它们的作用。特别要注意在循环体内应包含趋于结束的语句(即循环变量值的改变),否则就可能成了一个死循环,这是初学者的一个常见错误。 
在学完这三个循环后,应明确它们的异同点:用while和do…while循环时,循环变量的初始化的操作应在循环体之前,而for循环一般在语句1中进行的;while 循环和for循环都是先判断表达式,后执行循环体,而do…while循环是先执行循环体后判断表达式,也就是说do…while的循环体最少被执行一次,而while 循环和for就可能一次都不执行。另外还要注意的是这三种循环都可以用break语句跳出循环,用continue语句结束本次循环,而goto语句与if构成的循环,是不能用break和 continue语句进行控制的。 
顺序结构、分支结构和循环结构并不彼此孤立的,在循环中可以有分支、顺序结构,分支中也可以有循环、顺序结构,其实不管哪种结构,我们均可广义的把它们看成一个语句。在实际编程过程中常将这三种结构相互结合以实现各种算法,设计出相应程序,但是要编程的问题较大,编写出的程序就往往很长、结构重复多,造成可读性差,难以理解,解决这个问题的方法是将C程序设计成模块化结构。 
(4)模块化程序结构 
C语言的模块化程序结构用函数来实现,即将复杂的C程序分为若干模块,每个模块都编写成一个C函数,然后通过主函数调用函数及函数调用函数来实现一大型问题的C程序编写,因此常说:C程序=主函数+子函数。 因此,对函数的定义、调用、值的返回等中要尤其注重理解和应用,并通过上机调试加以巩固。 
三.掌握一些简单的算法 
编程其实一大部分工作就是分析问题,找到解决问题的方法,再以相应的编程语言写出代码。这就要求掌握算法,根据我们的《C程序设计》教学大纲中,只要求我们掌握一些简单的算法,在掌握这些基本算法后,要完成对问题的分析就容易了。如两个数的交换、三个数的比较、选择法排序和冒泡法排序,这就要求我们要清楚这些算法的内在含义
结语:当我们把握好上述几方面后,只要同学们能克服畏难、厌学、上课能专心听讲,做好练习与上机调试,其实C语言并不难学

如何学习R语言

2. 如何学习好r语言

首先R是一种专业性很强的统计语言,如果想学得快一些的话,基本的统计学知识要懂,不然很多东西会掌握的比较慢。
掌握基本语法和操作,推荐国内的已经翻译的比如《R语言实战》《R语言编程艺术》,这个过程中最好结合一些小例子来做一些分析的东西。如果需要可视化的话,强烈不推荐学习R本身的作图系统,实在是太不友好了.....还是用ggplot2吧。
掌握了上面的,就可以深入一些了,如果是做数据分析和可视化,推荐《ggplot2:数据分析与图形艺术》,这个才是作图的神器啊.....如果是空间分析相关的,推荐《Applied Spatial Data Analysis with R》,这个如果可以的话看英文版,而且要有地学的一些知识背景,中文版翻译的太次了,尽量不要看。数据挖掘机器学习之类的,可以看看比如《数据挖掘与R语言》、《机器学习——实用案例解析》,不过我觉得这几本书没上面的那几本好,但是可以大概看看是咋回事,最好还是看看专门的相关书籍,熟悉各种算法和流程,到时候搜索R的package,照着文档和例子搞定,不是特别难。

3. 如何学习好R语言

首先R是一种专业性很强的统计语言,如果想学得快一些的话,基本的统计学知识要懂,不然很多东西会掌握的比较慢。

掌握基本语法和操作,推荐国内的已经翻译的比如《R语言实战》《R语言编程艺术》,这个过程中最好结合一些小例子来做一些分析的东西。如果需要可视化的话,强烈不推荐学习R本身的作图系统,实在是太不友好了.....还是用ggplot2吧。

掌握了上面的,就可以深入一些了,如果是做数据分析和可视化,推荐《ggplot2:数据分析与图形艺术》,这个才是作图的神器啊.....如果是空间分析相关的,推荐《Applied Spatial Data Analysis with R》,这个如果可以的话看英文版,而且要有地学的一些知识背景,中文版翻译的太次了,尽量不要看。数据挖掘机器学习之类的,可以看看比如《数据挖掘与R语言》、《机器学习——实用案例解析》,不过我觉得这几本书没上面的那几本好,但是可以大概看看是咋回事,最好还是看看专门的相关书籍,熟悉各种算法和流程,到时候搜索R的package,照着文档和例子搞定,不是特别难。

如何学习好R语言

4. 如何零基础学习 R 语言

R是一种专业性很强的统计语言,如果想学得快一些的话,基本的统计学知识要懂,不然很多东西会掌握的比较慢。

       掌握基本语法和操作,推荐国内的已经翻译的比如《R语言实战》《R语言编程艺术》,这个过程中最好结合一些小例子来做一些分析的东西。其他还有《R语言实例》《R语言核心技术手册》也都是很好的书!如果需要可视化的话,强烈不推荐学习R本身的作图系统,实在是太不友好了.....还是用ggplot2吧。

      掌握了上面的,就可以深入一些了,如果是做数据分析和可视化,推荐《ggplot2:数据分析与图形艺术》,这个才是作图的神器啊.....如果是空间分析相关的,推荐《Applied Spatial Data Analysis with R》,这个如果可以的话看英文版,而且要有地学的一些知识背景,中文版翻译的太次了,尽量不要看。数据挖掘机器学习之类的,可以看看比如《数据挖掘与R语言》、《机器学习——实用案例解析》,不过我觉得这几本书没上面的那几本好,但是可以大概看看是咋回事,最好还是看看专门的相关书籍,熟悉各种算法和流程,到时候搜索R的package,照着文档和例子搞定,不是特别难。

     最后,强烈推荐统计之都、R-bloggers,统计之都以及谢益辉、肖凯、刘思喆等人的博客(自行Google以及到上面的网站找链接),订阅一下,会很有帮助,RStudio是个很棒的IDE,用起来很爽,功能很强大。
 
总之,你可以从《R语言实战》开始出发吧!

5. 如何学好R语言

 我的亲师弟最近也开始学习R语言了,然后师弟每天“师姐,师姐...",“我这个怎么弄...”,“我怎么又报错了...”,“师姐师姐...”...我快被他搞疯了,于是有了这篇文章。
   新手在学习R语言的过程中一定会出现各种各种问题,问题多到令人抓耳挠腮。
   但其实不要觉得害怕或有打退堂鼓的心里,R的使用,就是不断报错不断找问题的过程。但是出现问题,第一反应一定要是上网搜索,找答案,不要第一时间就问身边的人,错失了思考的过程。生信的学习,其实就是一个漫长的自学过程。
   推荐 搜索引擎:必应,必应,必应 !不要再用某度啦拜托!当然如果你能想办法用Google,那当然再好不过了。
    搜索能解决百分之九十以上的问题 ,就算解决不了,如果解决不了,可能是因为你的搜索能力还不够高。在这个搜索、尝试解决以及思考的过程,对新学者来说也是一大收获。本身搜索能力的提升就是一个巨大收获。
   如果自己尝试了好久,最终实在解决不了,那。。。就再去请教有经验的前辈吧~
   其实这种搜索并独立解决问题的思维,我还是在同济大学, 生信大牛刘小乐教授 课题组学到的。刘小乐教授课题组每年都有为期一个月的生信培训,本人有幸学习过一段时间。她们会给很多生信相关的题目给到学员,然后附上一些教学视频,培训的大部分时间,其实就是写作业,自己想方设法找到解决方案的过程。那些大牛师兄师姐们虽然一直在陪伴我们,但是并不会直接告诉我们答案,而是引导我们自己思考,自己去解决。当时真的很崩溃,因为真的啥也不会,怎么搞。一天下来有可能一个问题都答不上来。
   但是现在回头想想,我真的获益良多。因为我慢慢学会了独立思考,现在遇到R相关的问题,配合上搜索功能,基本上已经完全能自己驾驭了。
   这可能就是“ 授人以鱼不如授人以渔 ”的道理吧。    R语言很简单,只要你想学,就一定能学会。 
   以下附上同济大学刘小乐课题组在培训时针对初学者第一周的初级练习题。希望对大家有所帮助。
   首先你需要先安装几个最常用的数据处理软件
   You can use the  mean()  function to compute the mean of a vector like   so:
   However, this does not work if the vector contains NAs:
    Please use R documentation to find the mean after excluding NA's (hint:  ?mean ) 
   In this question, we will practice data manipulation using a dataset   collected by Francis Galton in 1886 on the heights of parents and their   children. This is a very famous dataset, and Galton used it to come up   with regression and correlation.
   The data is available as  GaltonFamilies  in the  HistData  package.   Here, we load the data and show the first few rows. To find out more   information about the dataset, use  ?GaltonFamilies .
   a.  Please report the height of the 10th child in the dataset. 
   b.  What is the breakdown of male and female children in the dataset? 
   c.  How many observations are in Galton's dataset? Please answer this   question without consulting the R help. 
   d.  What is the mean height for the 1st child in each family? 
   e.  Create a table showing the mean height for male and female children. 
   f.  What was the average number of children each family had? 
   g.  Convert the children's heights from inches to centimeters and store   it in a column called  childHeight_cm  in the  GaltonFamilies  dataset.   Show the first few rows of this dataset. 
   In the code above, we generate  r ngroups  groups of  r N  observations   each. In each group, we have X and Y, where X and Y are independent   normally distributed data and have 0 correlation.
   a.  Find the correlation between X and Y for each group, and display   the highest correlations. 
   Hint: since the data is quite large and your code might take a few   moments to run, you can test your code on a subset of the data first   (e.g. you can take the first 100 groups like so):
   In general, this is good practice whenever you have a large dataset:   If you are writing new code and it takes a while to run on the whole   dataset, get it to work on a subset first. By running on a subset, you   can iterate faster.
   However, please do run your final code on the whole dataset.
   b.  The highest correlation is around 0.8. Can you explain why we see   such a high correlation when X and Y are supposed to be independent and   thus uncorrelated? 
    Show a plot of the data for the group that had the highest correlation   you found in Problem 4. 
   We generate some sample data below. The data is numeric, and has 3   columns: X, Y, Z.
   a.  Compute the overall correlation between X and Y. 
   b.  Make a plot showing the relationship between X and Y. Comment on   the correlation that you see. 
   c.  Compute the correlations between X and Y for each level of Z. 
   d.  Make a plot showing the relationship between X and Y, but this   time, color the points using the value of Z. Comment on the result,   especially any differences between this plot and the previous plot. 

如何学好R语言

6. 如何零基础学习 R 语言

坚持努力。

7. 为什么要学习R语言

刚开始学习数据科学的人都会面对同一个问题:不知道该先学习哪种编程语言。
不仅仅是编程语言,像Tableau,SPSS等软件系统也是同样的情况。有越来越多的工具和编程语言,很难知道该选择哪一种。
事实是,你的时间有限。学习一门新的编程语言相当于一项巨大的投资,因此在选择语言时需要有战略性。很明显,一些语言会给你的投资带来很高的回报(付出的时间和金钱投资)。然而其他语言可能是你每年只用几次的纯粹辅助工具。
我给你的建议就是:先学习R语言
因为R语言正在成为数据科学的“通用语言”
这并不是说R语言是唯一的语言,也不是说它是每个工作的最佳工具。然而,它是使用最广泛的,而且越来越受欢迎。
使用R语言的公司
在招聘数据科学家的几家顶级公司中,R语言使用程度非常高。在我认为现代经济中最优秀的两家公司——Google和Facebook都有使用R语言数据科学家。
除了像Google,Facebook和微软这样的科技巨头,R语言在美国银行,福特,TechCrunch,Uber和Trulia等众多公司都有广泛的应用。
R语言在学术界很受欢迎
R语言不仅仅是一个行业工具。它在学术科学家和研究人员中也非常受欢迎,最近著名《自然》杂志上发表的R语言概况也证实了这一点。
R语言在学术界的备受欢迎,因为它创造了供应行业的人才库。
换句话说,如果最优秀、最聪明的人群在大学学习了R语言,这将加大R语言在行业中的重要性。当学者、博士和研究人员离开学术界从事商业活动时,他们又将产生对R语言人才的需求。
此外,随着数据科学的成熟,商业届的数据科学家将需要与学术届的科学家进行更多的沟通。我们需要借鉴技术和交流观点。随着世界转变为数据流时,学术科学与面向商业的数据科学之间的界线会变得模糊。
通过R语言学习“数据科学的技能”是最简单的
然而,R语言的普及性并不是学习R语言的唯一原因。
在选择语言时,你需要一种在这些领域都具有重要功能的语言。同时你需要执行这些任务的工具,以及在你所选语言中来学习这些技能的资源。
如上所述,你更多地需要关注流程和技术,而不是语法。
你需要学习如何解决问题。
你需要学习如何在数据中找到真知灼见。
为此,你需要掌握数据科学的3个核心技能领域:数据处理,数据可视化和机器学习。在R语言中掌握这些技能将比任何其他语言都容易。
数据处理
一般来说,数据科学中80%的工作都是数据处理。通常情况下,你需要花费大量时间来整理你的数据。R语言中有一些很棒的数据管理工具。
R语言中的dplyr包使数据处理变得容易,这可以大大简化数据处理的工作流程。
数据可视化
ggplot2是最佳的数据可视化工具之一。ggplot2的好处是,在学习语法的同时,还学习如何思考数据可视化。
所有的统计可视化都有很深层的结构。存在构建数据可视化的高度结构化框架,ggplot2基于该框架。
此外,当将ggplot2和dplyr组合在一起时,从数据中得出相关见解几乎毫不费力。
机器学习
最后,还有机器学习。虽然我认为大多数数据科学初学者不应该急于学习机器学习(首先掌握数据探索更为重要),机器学习是一项重要的技能。当数据探索不再带来洞察力时,你则需要更强大的工具。

为什么要学习R语言

8. 怎么样学习R语言?

1.初级入门
《An Introduction to R》,这是官方的入门小册子。其有中文版,由丁国徽翻译,译名为《R导论》。《R4Beginners》,这本小册子有中文版应该叫《R入门》。除此之外,还可以去读刘思喆的《153分钟学会R》。这本书收集了R初学者提问频率最高的153个问题。为什么叫153分钟呢?因为最初作者写了153个问题,阅读一个问题花费1分钟时间,全局下来也就是153分钟了。有了这些基础之后,要去读一些经典书籍比较全面的入门书籍,比如《统计建模与R软件》,国外还有《R Cookbook》和《R in action》,本人没有看过,因此不便评论。
2.高级入门
读了上述书籍之后,你就可以去高级入门阶段了。这时候要读的书有两本很经典的。《Statistics with R》和《The R book》。之所以说这两本书高级,是因为这两本书已经不再限于R基础了,而是结合了数据分析的各种常见方法来写就的,比较系统的介绍了R在线性回归、方差分析、多元统计、R绘图、时间序列分析、数据挖掘等各方面的内容,看完之后你会发现,哇,原来R能做的事情这么多,而且做起来是那么简洁。读到这里已经差不多了,剩下的估计就是你要专门攻读的某个方面内容了。
3、推介你看下这位大咖的CSDN博客,里面有很多有关R语言入门类文章,一定能get到新知识,希望对你有帮助。
博主博客地址:
Data+Science+Insight的博客_CSDN博客-R语言从入门到机器学习,数据科学从0到1,机器学习面试+横扫千军领域博主
博客内容包括:数据科学从0到1、R语言从入门到机器学习、机器学习面试+横扫千军、Python编程技巧高效复用等系列
最新文章
热门文章
推荐阅读