📜  R关键字

📅  最后修改于: 2021-01-08 09:27:36             🧑  作者: Mango

R编程中的关键字

在编程中,关键字是程序保留的单词,因为它具有特殊的含义。关键字可以是命令或参数。像在C,C++,Java中一样,R中也有一组关键字。关键字不能用作变量名。关键字也称为“保留名称”。

根据?reservedhelp(reserved)命令,有以下关键字:

if else repeat
while function for
next break TRUE
FALSE NULL Inf
NaN NA NA_integer_
NA_real_ NA_complex_ NA_character_

1)如果

if语句由一个布尔表达式组成,后跟一个或多个语句。在R中,if语句是最简单的条件语句,用于决定是否执行该语句的块。

例:

a<-11
if(a<15)
+ print("I am lesser than 15")

输出:

2)其他

R else语句与if语句关联。如果if语句的条件为false,则else块将被执行。让我们看一个例子来清楚地说明一下:

例:

a<-22
if(a<20){
    cat("I am lesser than 20")
}else{ 
    cat("I am larger than 20")
}

输出:

3)重复

repeat关键字用于遍历代码块多次。在R中,repeat是一个循环,在此循环语句中,没有条件可以退出循环。为了退出循环,我们将使用break语句。

例:

x <- 1
repeat {
    cat(x)
    x = x+1
if (x == 6){
        break
    }
}

输出:

4)而

while关键字用作循环。执行while循环,直到给定条件为真为止。这也用于进行无限循环。

例:

a <- 20
while(a!=0){
      cat(a)
      a = a-2
}    

输出:

5)函数

函数是R编程中的对象。关键字函数用于在R中创建用户定义函数。R还具有一些预定义的函数,例如seq,mean和sum。

例:

new.function<- function(n) {
   for(i in 1:n) {
      a <- i^2
      print(a)
   }
}
new.function(6)

输出:

6)

for是用于循环或迭代序列(字典,字符串,列表,集合或元组)的关键字。

我们可以在for循环的帮助下,对迭代器中的每个项目(列表,集合,元组等)执行一次语句集。

例:

v <- LETTERS[1:4]
for ( i in v) {
   print(i)
}

输出:

7)下一个

next关键字跳过循环的当前迭代而不终止它。接下来找到R解析器时,它将跳过进一步的评估,并开始循环的新迭代。

例:

v <- LETTERS[1:6]
for ( i in v) {
if (i == "D") {
        next
}
    print(i)
}

输出:

8)休息

如果条件为真,则使用break关键字终止循环。程序的控制权首先传递给外部语句,然后传递给break语句的主体。

例:

n<-1
while(n<10){
if(n==3)
        break
n=n+1
cat(n,"\n")
}
cat("End of the program")

输出:

9)是/否

TRUE和FALSE关键字用于表示布尔值true和布尔值false。如果给定的语句为true,则解释器返回true,否则解释器返回false。

10)空

在R中,NULL表示空对象。 NULL用于表示缺失和未定义的值。 NULL是既不是TRUE也不是FALSE的语句的逻辑表示。

例:

as.null(list(a = 1, b = "c"))

输出:

11)Inf和NaN

is.finite和is.infinite函数返回相同长度的向量,指示哪些元素是有限的或无限的。

Inf和-Inf是正无穷大。 NaN代表“不是数字”。 NaN适用于数值以及复数值的实部和虚部,但不适用于整数向量的值。

用法

is.finite(x)
is.infinite(x)
is.nan(x)

Inf
NaN

12)不适用

NA是长度为1的逻辑常数,其中包含缺失值指示符。可以将其强制为除raw以外的任何其他向量类型。也有其他类型的常量,例如NA_Integer_,NA_real_,NA_complex_和NA_character。这些常数是其他原子向量类型,支持缺失值。

用法

NA
is.na(x)
anyNA(x, recursive = FALSE)

## S3 method for class 'data.frame'
is.na(x)

is.na(x) <- value