R语言基本语法

mean(1:5)#求1到5的算数平均
1:5 + 6:10#1-5序列中的每个数与6-10中每一个数相加
#c函数是r中最基础的函数,他可以把一系列的值拼接起来创建一个向量,
c(1,3,6,10,15)+c(0,1,2,6,10,0,1,2,6,10)
sum(1:5)#15
median(1:5)#3
c(1,3,6,10,15)-2#[1] -1  1  4  8 13
-2:2 * -2:2#[1] 4 1 0 1 4
1:10 / 3# [1] 0.3333333 0.6666667 1.0000000 1.3333333 1.6666667 2.0000000 [7] 2.3333333 2.6666667 3.0000000 3.3333333
#取整除法
1:10%/%3#[1] 0 0 1 1 1 2 2 2 3 3
#取余
1:10 %% 3#[1] 1 2 0 1 2 0 1 2 0 1
#阶乘函数
factorial(5)#5!=5*4*3*2*1=120
#关系运算符== != >= <=
c(3,4-1,1+1+1) == 3#[1] TRUE TRUE TRUE
#赋值操作,可以采用<-,也可以=,主流采用<-,给全局变量赋值采用<<-
x <<-sqrt(4)
x#x=2
#使用assign函数赋值assign("变量名",值),如果给全局变量赋值则assign("变量名",值,globalenv())
assign("my_local_variable",9^3+10^3)
#R语言4种特殊值:Inf -Inf NaN NA 正无穷  负无穷  非数值无计算意义  缺失值
# 或(|)&与!非
#any函数:输入的向量中如果有一个true,那就为true;all函数:只有全部为true才为true
#字符类:character,采用c函数进行创建
class(c("she","shell"))#[1] "character"R语言中不区分字符串和单个字符
#factor-因子类型:项目字典表
gender<-factor(c("male","female"))
gender#[1] male   female Levels: female male
#levels 查看类型内容,nlevels 查看类型数量 
nlevels(gender)#2
as.integer(gender)#2 1
#检查变量类型一般采用is(x,"变量类型")。is.character()/is.logical()/is.list()
ls(pattern = "^is",baseenv())#查看base包里面的所有is下的函数
#改变一个对象的类型,大部分is.*函数都有对应的as.函数:as(变量,"类型“);as.numeric(变量)
#print打印,经常要用在循环语句中
print(gender)
for (i in (1:10)) print(i)
#随机生成30个(0-1)之间的数
num<-runif(30)
num
#summary函数
summary(num)
#Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
#0.08597 0.36514 0.50250 0.54083 0.80130 0.96995 
#str函数可以显示对象的结构,对象量来说非常的有用
str(num)
?str#查看str
#unclass函数显示变量是如何构建的,对因子调用UNclass会显示他是一个整数向量,并且有一个叫levels的属性
fac<-factor(sample(letters[1:5],30,replace = TRUE))#用前五个字母随机生成三十个
unclass(fac)
fac#e a b a d d a e b e d b e c d a d a b c e c e d c d e d b b
ls()#列出变量名
#用正则表达式匹配变量
ls(pattern = "as")
#指定清理变量rm(变量名),清理所有变量rm(list = ls())
rm(class1)
#向量:vector函数能创建一个指定类型和长度的向量,响亮的值可以是0、false、空字符串
vector("numeric",6)#0 0 0 0 0 0等同于numeric(6)
vector("logical",6)#FALSE FALSE FALSE FALSE FALSE FALSE
vector("character",6)# "" "" "" "" "" ""
vector("complex",6)# 0+0i 0+0i 0+0i 0+0i 0+0i 0+0i
#seq.int(开始值,结束值,指定步长)
seq.int(3,12)#3  4  5  6  7  8  9 10 11 12
#seq_len(n)#表示创建一个长度为n的数字序列
seq_len(5)# 1 2 3 4 5
#seq_along(向量),创建一个从1开始,长度为其输入值的序列
pp<-c("peter","piper","piked","a","peck","of","pickled")
seq_along(pp)#1 2 3 4 5 6 7
for(i in seq_along(pp)) print (pp[i])
#length为向量重新分配长度,若长度减少,则后面的元素将被删除,如果增加则用缺失值补充
#为变量命名
x<-c(apple = 1,banana = 2,"kaka"=3)
names(x)#"apple"  "banana" "kaka"
#向量索引
x<-(1:5)^2#1 4 9 16 25
#1.给向量传入一个正值,等同于下标索引
x[c(1,3,5)]#1  9 25
#2.给向量传入一个负值,相当于去除第几个元素
x[c(-2,-4)]#1  9 25
#3.传入一个逻辑向量,返回值为逻辑值为true的元素
x[c(TRUE,TRUE,FALSE,TRUE,FALSE)]# 1  4 16
#向量的循环,把单独的一个数和向量相加,则向量的每个元素都会加上该数值
1:5+1#2 3 4 5 6
#当两个向量相加,R将循环较短向量中的元素加到较长向量中去
1:5+1:15# 2  4  6  8 10  7  9 11 13 15 12 14 16 18 20
#rep函数可以重复使用向量中的元素来创建新的向量
rep(1:5,3)# 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5
rep_len(1:5,13)# 1 2 3 4 5 1 2 3 4 5 1 2 3
#矩阵和数组
a_matrix<-matrix(1:12,nrow=4,dimnames = list(
  c("one","two","three","four"),
  c("ein","zwei","drei")
))
a_matrix
#返回维度的数值向量dim()
dim(a_matrix)#4 3
#length函数返回所有维度的乘积也就是元素数量
length(a_matrix)#12
#返回向量中元素的名称rownames和colnames
rownames(a_matrix)#"one"   "two"   "three" "four"
colnames(a_matrix)#"ein"  "zwei" "drei"
if(TRUE) message("这是正确的")
if(x>3){
  y<-2*x
}else{
  message("x小鱼三")
}
#ifelse(condition,a,b)第一个是逻辑条件向量,如果为真则执行a,否则执行b
#多分支switch
Greek<-switch ("gama",
               alpha = 1,
               beta = sqrt(4),
               gama = {
                 a<-sin(pi/3)
                 4*a^2
               }
)
#循环repeat,for while,break可退出
repeat{
  message("happy ground day!")
  action<-sample(c("learn french",
                   "make an ice statue",
                   "Rob a bank",
                   "win heart of Andie"),1)
  message("action=",action)
  if(action == "win heart of Andie")
    break
}
action<-sample(c("learn french",
                 "make an ice statue",
                 "Rob a bank",
                 "win heart of Andie"),1)
while(action != "win heart of Andie"){
  message("happy ground day!")
  action<-sample(c("learn french",
                   "make an ice statue",
                   "Rob a bank",
                   "win heart of Andie"),1)
  message("action=",action)
}
#环境变量,可以用双方括号或者美元符号进行分配变量
an_env<-new.env()
an_env[["pythag"]]<-c(12,15,20,21)
an_env$root<-polyroot(c(6,-5,1))
#判断某变量是否存在环境中exists("变量名“,环境名)
#函数,function(变量1,变量2)。一般计算的最后一个值会自动作为返回值

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值