在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
Question: 1.R语言与C语言语法上有什么不同,有什么相同? 所有R代码都用于操作对象,和C++一样是面向对象的语言,C是面向过程的语言,R中有每一种数据结构相当于C++中的类,每个数据相当于一个对象; 有数值向量形式的对象:c(1,2,3,4,5) 有字符型对象:“This is the world” 有各种元素形成的列表样式的对象:list(c(1,2,3),"This is the world") 数值本身也是一个对象:1 2 3 函数也是一个对象:f = function(x,y){x*y}; f(2,3) 输出:6 R语言中赋值除了=可以赋值外还可以<- 例如x <- 1; y <- c(1,2,3); 个人习惯还是用等号把 = R语言中的函数也是作用于形参,而非实参,和C语言相似 一定区间的向量可以简写为1:n,表示从1到n的闭区间的整数所形成的向量 向量和C语言中的数组很像也和vector很像,但是起始是从1开始而不是从0开始。 R语言中也有强制类型转换,自动匹配所需要的数据类型,会将特殊类型转变为一般的类型 有高一级转向低一级:logical < integer<numeric<complex<character(字符串类型)<list 如果想知道x的数据类型,输入 typeof(x) 和C语言中typedef很像,只是typedef相当于给数据类型取一个别名
2.R语言中函数如何定义? 对于R语言中的每一个对象,都有对应的函数对该对象进行操作,这一点类似于C; 而不是C++,因为C++把函数也封装到了类里,而R并没有; 例如length(v)得到v的长度,并且这个长度还可以被用户所改动,更有利于修改分析数据 quote(f) f为用户输入的表达式,返回一个language对象 as(l,“list”) 将language对象转变为一个list 整数 n:n 序列得到;如果直接n则得到的是一个默认的双精度浮点数 或者用as 强制类型转化为“integer” as(1, "integer") 2^1024 = Inf大小有限制,并且精度上也有限制,例如(2^1023+1) == 2^1023 得到是TRUE 一个浮点数长度为1024bit吗 而C语言中浮点数长度为8bit*4,(4个字节), 而双精度较高8bit*8 (8个字节),所以C语言中表示的数范围小很多,R语言中的数有将近128byte (128个字节),处理大数据很方便,但是大数据会损失一定的精度 R中取模 用%% 而不是%,得到余数 整除用%/%,得到商 相当于自带math.h max(),min(),sqrt()常用的都有。 自己定义函数可以用 f = function(x1,x2,...){ if() ... else if() ... else if() ... else ... } 同样也有switch操作符 switch(x, a = ..., b = ...., c= ..., ...) 最后一个相当于default;a,b,c 相当于if(x ==‘a’) switch操作只限于字符串, 和C中很像switch(ch) case '1':...
利用函数可以写一个递归求factorial的函数 gamma(N) = factorial(N) f = function(n){ if(n==1) 1 else f(n-1)*n } R语言中没有++ += 这类符号,只能老实写i=i+1 3.R中的数据结构有哪些? R中存在一些特殊值的符号: NA: 表示缺失值,相当于C中的NULL; NAN: 计算机产生的一个无意义的结果;not a number 例如Inf-Inf; Inf 表示无穷大;1/0 = Inf , 1/(-0) = -Inf NULL:在R语言中表示的是一个null对象,常用在函数的参数中,表示该参数没有被赋值
二维数组:(矩阵)matrix matrix(data = c(),nrow = ,ncol = ) 按列排nrow*ncol不能超过data的容量 m[1:2,]表示一二两行 m[m,n]表示m,n处的值 更高维数组: array(data = ,dim = c(x,y,z))表示三维长宽高分别为x,y,z 从底层向上排,每一层按列排
4.R中的循环,随机数,遍历,如何实现? 循环的实现: 和C类似 只是将continue改为了next i = 1 while(i<10){print(i);i=i+1} #while 循环 #作注释 for循环: 和C不同,自动遍历一个list或者序列seq(from, to ,by步长) for( i in seq(5,25,3)) print(i) #from to 所形成的的为闭区间,包括端点 repeat循环: 需要if() break才能退出循环;
5.R中如何导入excel数据? 其他: R中虚数表示为a+bi,中间无乘号 i 应该写成1i; x的n次方表示为:x^n; ^在C语言中是抑或符号 R语言和python一样属于交互型的语言,输入一个表达式,系统响应对应的输出; 交互 约等于 解释;解释用户输入的对象和对象的操作,并输出;用户输入的是表达式
R语言 第五章和第六章 语言概述+语法部分完 |
请发表评论