R语言中的if else语句

Python014

R语言中的if else语句,第1张

条件执行结构包括if-else、ifelse和switch。

1)if-else结构

if - else 结构

if-else在某个结构在某个给定条件为真时,执行语句;也可以同时在条件为假时,执行另外的语句。

语法为:

if (条件) 执行语句

if (条件) 执行语句A else 执行语句B

2)ifelse结构

ifelse结构是if-else结构比较紧凑的向量化版本,其语法为

ifelse(条件1, 执行A, 执行B)

如果条件1为真,则执行A, 否则执行B.

这个和C中的if有点像(C中的if暂时想不起来了,但感觉是类似的)

# Q1

x = 0.5

n = 0

while ( abs(x - cos(x)) > 0.01) {

    x = cos(x)

    n = n + 1

}

print(sprintf('%i, x=%.3f, cos(x)=%.3f', n, x, cos(x))

Q2,正好刚刚回答了另一个R的质数的问题(http://zhidao.baidu.com/question/571598738),借过来用一下。这个数比较大,要运行一段时间,别着急。

Eratosthenes <- function(n) {

   if (n>2) {

      sieve <- seq(2,n)

      primes <- c()

      for ( i in seq(2,n)) {

          if (any(sieve == i)) {       

              primes <- c ( primes, i)    

              sieve <- c ( sieve[(sieve %% i ) != 0 ], i) 

              if ((i-2) %in% sieve) {

                print(sprintf("%i, %i", (i-2), (i)))

              }

           }

       }

       return(primes)

     } else {

        print ("n > 2")

     }

}

primes = Eratosthenes(1000^2)

[1] "3, 5"

[1] "5, 7"

[1] "11, 13"

[1] "17, 19"

[1] "29, 31"

[1] "41, 43"

[1] "59, 61"

[1] "71, 73"

...

将小数组的值循环赋值给大数组,如果大数组未满,继续循环赋值。或者直接一个循环(大数组的长度作为循环限制)赋值到小数组完,重置小数组的index为0,直到大数组全部赋值完。 【相关拓展】 第一种用for循环: 1 2 3 4 int[] x={1,2}int[] y=ne...