2023-11-21 09:39来源:m.sf1369.com作者:宇宇
首先R是一种专业性很强的统计语言,如果想学得快一些的话,基本的统计学知识要懂,不然很多东西会掌握的比较慢。
掌握基本语法和操作,推荐国内的已经翻译的比如《R语言实战》《R语言编程艺术》,这个过程中最好结合一些小例子来做一些分析的东西。其他还有《R语言实例》《R语言核心技术手册》也都是很好的书!如果需要可视化的话,强烈不推荐学习R本身的作图系统,实在是太不友好了.....还是用ggplot2吧。
掌握了上面的,就可以深入一些了,如果是做数据分析和可视化,推荐《ggplot2:数据分析与图形艺术》,这个才是作图的神器啊.....如果是空间分析相关的,推荐《Applied Spatial Data Analysis with R》,这个如果可以的话看英文版,而且要有地学的一些知识背景,中文版翻译的太次了,尽量不要看。数据挖掘机器学习之类的,可以看看比如《数据挖掘与R语言》、《机器学习——实用案例解析》,不过我觉得这几本书没上面的那几本好,但是可以大概看看是咋回事,最好还是看看专门的相关书籍,熟悉各种算法和流程,到时候搜索R的package,照着文档和例子搞定,不是特别难。
最后,强烈推荐统计之都、R-bloggers,统计之都以及谢益辉、肖凯、刘思喆等人的博客(自行Google以及到上面的网站找链接),订阅一下,会很有帮助,RStudio是个很棒的IDE,用起来很爽,功能很强大。
总之,你可以从《R语言实战》开始出发吧!
Q1
1. 将Fib2加到Fibonacci 里
2. 存Fib2
3. 算新的Fib2
4. 把Fib1变成循环刚开始的Fib2
Q2.
while (Fib1+Fib2 < 300) {
Fibonacci <- c(Fibonacci, Fib1+Fib2)
Fib1 = Fib2
}Q3
Fibonacci <- c(1,1)
while (tail(Fibonacci, n=1) < 300) {
Fibonacci <- c(Fibonacci, sum(tail(Fibonacci, n=2)))
}
我逐行给你解释
>U2 <- runif (1000) #生成1000个服从0,1上均匀分布的数,同理U1
> U1 <- runif (1000) #runif 是 random uniform的缩写,你只给了1000的个数没有指定范围,那么默认是0,1上的均匀分布 比如说 U3 <- runif (1000,1,2) 那就是1,2上均匀分布
> X <- U1 +U2
> Y <- U1- U2 #这两句很直观,X是U1 U2的和,Y是U1 U2的差
Q1:plot ( Y~X) 就是打出(x,y)的图 ,效果和plot(x,y)一样。为什么是菱形?你比如说X=0.5小于1的时候,由于U1和U2都是非负数,且U1 +U2=0.5. U1 U2的取值范围都是在0到0.5之间,所以U1- U2就在正负0.5之间,所以X是多少,那么Y的范围就是正负X,这不就是菱形嘛。当然在X=1.5大于1的时候呢,U1+U2=1.5但是U1和U2都是0,1之间的,所以U1-U2又是在正负0.5之间,既Y在正负1-X之间。
Q2:X 和Y 是随机independent 吗?当然不是,求解联立方程得X+Y=2U1,有关系的。
切忌用cor(x,y)=0来判断x,y是否独立,这是不成立的。独立-->相关系数为0,反过来不成立。
Q3:U1 和U2 也是随机independent 吗? #那图都没plot U1,U2,那怎样知道啊?
可以理解是随机的,这要涉及的到随机数怎么产生的。没plot你自己plot一下不就好了
plot(U1,U2),肯定是在单位正方形里面随机分布,完全没有规律
Q4: X 和 Y 是 linearly dependent 吗?必须线性独立啊,除非X是Y的某个倍数,这怎么可能。
Q5: U1 和 U2 linearly dependent吗? 同Q4
从第一行开始,N直到pai,都是赋值语句。其中x1和x2是长度为N,类型为十进制小数的向量。
runif是生成一个随机数,取值在-1到1之间。for循环语句生成具体的两个向量,即x1和x2,其中的每个数都用runif来生成。
紧接之后的if语句用来计数n,其条件为如果对于数值x1[i]和x2[i],如果点(x1[i],x2[i])位于单位圆内,n就加1。一共循环N次。
最后就得出值pai = 4*n/N。
看下来不像是一个参数值估计程序。