精华内容
下载资源
问答
  • R语言For循环

    2017-06-16 09:40:00
    R语言For循环 for循环是一个循环控制结构,可以有效地编写需要执行的特定次数的循环。 语法 创建一个R语言中循环语句的基本语法是: for (value in vector) { statements } 流程图 R语言的 for循环是特别灵活的,...

     R语言For循环

    for循环是一个循环控制结构,可以有效地编写需要执行的特定次数的循环。
    语法
    创建一个R语言中循环语句的基本语法是:
    for (value in vector) {
        statements
    }
    流程图

    R语言的 for循环是特别灵活的,因为它们并不限于整数,或输入偶数。我们可以输入字符向量,逻辑向量,列表或表达式。
    示例
    v <- LETTERS[1:4]
    for ( i in v) {
       print(i)
    }
    当上述代码被编译和执行时,它产生了以下结果:
    [1] "A"
    [1] "B"
    [1] "C"
    [1] "D"

    转载于:https://www.cnblogs.com/amengduo/p/9587023.html

    展开全文
  • R语言for循环

    2018-04-23 23:44:00
    基本语法:for (name in expr_1) expr_2 实例操作: 1.构造矩阵 x=array(0,dim=c(4,4)) # 构造四阶矩阵 数值全为0 for (i in 1:4){ for (j in 1:4){ x[i,j]=1/(i+j+1) } } print(x) [,1] [,....

    基本语法:for (name in expr_1) expr_2

    实例操作:

    1.构造矩阵

    x=array(0,dim=c(4,4)) # 构造四阶矩阵 数值全为0
    for (i in 1:4){
        for (j in 1:4){
            x[i,j]=1/(i+j+1)
      }
        }
    print(x)
             [,1]      [,2]      [,3]      [,4]
    [1,] 0.3333333 0.2500000 0.2000000 0.1666667
    [2,] 0.2500000 0.2000000 0.1666667 0.1428571
    [3,] 0.2000000 0.1666667 0.1428571 0.1250000
    [4,] 0.1666667 0.1428571 0.1250000 0.1111111

    2.利用循序进行单位根检验

    nrow=20
    ncol=5
    A=matrix(nrow=nrow,ncol=ncol,data=NA)
    for (i in 1:ncol) { A[,i]= rnorm(20, mean=0, sd=1) #构造正太分布,产生20个随机数,服从正太分布 }
    library(tseries) #导入所需要的函数包 for (i in 1:5) {print(adf.test(A[,i]))} #AD

     结果如下,很方便.

    Augmented Dickey-Fuller Test data: A[, i] Dickey-Fuller = -2.4773, Lag order = 2, p-value = 0.3905 alternative hypothesis: stationary Augmented Dickey-Fuller Test data: A[, i] Dickey-Fuller = -1.8836, Lag order = 2, p-value = 0.6167 alternative hypothesis: stationary Augmented Dickey-Fuller Test data: A[, i] Dickey-Fuller = -3.5647, Lag order = 2, p-value = 0.05491 alternative hypothesis: stationary Augmented Dickey-Fuller Test data: A[, i] Dickey-Fuller = -2.2957, Lag order = 2, p-value = 0.4597 alternative hypothesis: stationary Augmented Dickey-Fuller Test data: A[, i] Dickey-Fuller = -2.2784, Lag order = 2, p-value = 0.4663 alternative hypothesis: stationary

      

    F单位根检验

      

     

    转载于:https://www.cnblogs.com/jin-liang/p/8922832.html

    展开全文
  • R语言for循环结果异常

    2021-02-22 16:28:58
    <p>R语言for循环结果异常,想根据 center 和 HRG对数据集进行亚组分析,但是跑出来的12张图中有好几张空白,只有6张图是想要得到的,请问如何在代码设计中就去掉冗余的图片,或者此...
  • R语言FOR循环打印9*9乘法表

    千次阅读 2018-10-28 22:56:39
    R语言FOR循环打印9*9乘法表 算法原理 使用for循环打印99乘法表时,需要两重循环,第一重循环乘数,第二重循环表示被乘数,打印当乘数大于等于被乘数时的结果,并在每次第二重循环结束时换行。 代码和结果展示 for(x ...

    R语言FOR循环打印9*9乘法表

    算法原理

    使用for循环打印99乘法表时,需要两重循环,第一重循环乘数,第二重循环表示被乘数,打印当乘数大于等于被乘数时的结果,并在每次第二重循环结束时换行。

    代码和结果展示

    for(x in c(1:9)){
      for(y in c(1:9)){
        if(x>=y){
          z<-x*y
          cat(x,"*",y,"=",z," ")
        } 
      }
      cat("\n")
    }
    
    > for(x in c(1:9)){
    +   for(y in c(1:9)){
    +     if(x>=y){
    +       z<-x*y
    +       cat(x,"*",y,"=",z," ")
    +     } 
    +   }
    +   cat("\n")
    + }
    1 * 1 = 1  
    2 * 1 = 2  2 * 2 = 4  
    3 * 1 = 3  3 * 2 = 6  3 * 3 = 9  
    4 * 1 = 4  4 * 2 = 8  4 * 3 = 12  4 * 4 = 16  
    5 * 1 = 5  5 * 2 = 10  5 * 3 = 15  5 * 4 = 20  5 * 5 = 25  
    6 * 1 = 6  6 * 2 = 12  6 * 3 = 18  6 * 4 = 24  6 * 5 = 30  6 * 6 = 36  
    7 * 1 = 7  7 * 2 = 14  7 * 3 = 21  7 * 4 = 28  7 * 5 = 35  7 * 6 = 42  7 * 7 = 49  
    8 * 1 = 8  8 * 2 = 16  8 * 3 = 24  8 * 4 = 32  8 * 5 = 40  8 * 6 = 48  8 * 7 = 56  8 * 8 = 64  
    9 * 1 = 9  9 * 2 = 18  9 * 3 = 27  9 * 4 = 36  9 * 5 = 45  9 * 6 = 54  9 * 7 = 63  9 * 8 = 72  9 * 9 = 81  
    
    展开全文
  • R学习往期回顾:R学习:R for Data Science 循环-迭代(for while))R学习:R for Data Science 向量(1)R学习:R for Data Science 向量(2)R学习 从Tidyverse学起,入门R语言 dplyr合并数据R学习 流程控制 if,...

    54a67b31aa86cf136e4537a6fa795cad.png

    R学习往期回顾:

    R学习:R for Data Science 循环-迭代(for while))

    R学习:R for Data Science 向量(1)

    R学习:R for Data Science 向量(2)

    R学习 从Tidyverse学起,入门R语言 dplyr合并数据

    R学习 流程控制 if,else,ifelse

    R学习 从Tidyverse学起,入门R语言(tidyr和stringr)

    R学习 从Tidyverse学起,入门R语言(tibble,readr和dplyr)

    R学习:字符串

    R学习:环境和函数

    R学习:数据框的基本操作

    R学习:R for Data Science(五)

    R学习:R for Data Science(四)

    R学习:R for Data Science(三)

    R学习:R for Data Science(二)

    R学习:R for Data Science(一)

    for循环与函数式编程

    for 循环在 R 中不像在其他语言中那么重要,因为 R 是一门函数式编程语言。这意味着可以先将 for 循环包装在函数中,然后再调用这个函数,而不是直接使用 for 循环

    library(tidyverse)
    df <- tibble(
      a = rnorm(10),
      b = rnorm(10),
      c = rnorm(10),
      d = rnorm(10)
    )

    假设想要计算每列的均值。你可以使用 for 循环来完成这个任务

    output <- vector("double", length(df))
    for (i in seq_along(df)) {
      output[[i]] <- mean(df[[i]])
    }
    output

    将这段代码提取出来,转换成一个函数:

    col_mean <- function(df) {
      output <- vector("double", length(df))
      for (i in seq_along(df)) {
        output[i] <- mean(df[[i]])
      }
      output
    }

    还可以算每列的中位数和标准差

    col_median <- function(df) {
      output <- vector("double", length(df))
      for (i in seq_along(df)) {
        output[i] <- median(df[[i]])
      }
      output
    }
    col_sd <- function(df) {
      output <- vector("double", length(df))
      for (i in seq_along(df)) {
        output[i] <- sd(df[[i]])
      }
      output
    }

    通过添加支持函数应用到每列的一个参数,我们可以使用同一个函数完成与 col_mean()、col_median() 和 col_sd() 函数相同的操作:

    col_summary <- function(df, fun) {
      out <- vector("double", length(df))
      for (i in seq_along(df)) {
        out[i] <- fun(df[[i]])
      }
      out
    }
    col_summary(df, median)
    col_summary(df, mean)

    40d87540bab3080fe6199a7e6a192ada.png

    将函数作为参数传入另一个函数的这种做法是一种非常强大的功能,它是促使 R 成为函数式编程语言的因素之一。
    我们将学习和使用 purrr 包,它提供的函数可以替代很多常见的 for 循环应用。 R 基础包中的应用函数族(apply()、 lapply()、 tapply() 等)也可以完成类似的任务,但 purrr 包中的函数更一致,也更易于学习。

    使用 purrr 函数代替 for 循环的目的是将常见的列表处理问题分解为独立的几个部分。
    • 对于列表中的单个元素,你能找到解决问题的方法吗?如果找到了解决方法,那么你就可以使用 purrr 将这种方法扩展到列表中的所有元素。

    • 如果你面临的是一个非常复杂的问题,那么如何将其分解为几个可行的子问题,然后循序渐进地解决,直至完成最终的解决方案?使用 purrr,你可以解决很多子问题,然后再通过管道操作将这些问题的结果组合起来。

    映射函数

    先对向量进行循环、然后对其每个元素进行一番处理,最后保存结果。这种模式太普遍了,因此 purrr 包提供了一个函数族来替你完成这种操作。每种类型的输出都有一个相应的函数:
    • map() 用于输出列表;
    • map_lgl() 用于输出逻辑型向量;
    • map_int() 用于输出整型向量;
    • map_dbl() 用于输出双精度型向量;
    • map_chr() 用于输出字符型向量。

    每个函数都使用一个向量作为输入,并对向量的每个元素应用一个函数,然后返回和输入向量同样长度(同样名称)的一个新向量。向量的类型由映射函数的后缀决定。

    我们可以使用这些函数来执行与最后一个 for 循环相同的操作。因为那些摘要函数返回的是双精度数,所以我们需要使用 map_dbl() 函数:

    map_dbl(df, median)
    map_dbl(df, mean)

    3d8404843440d2639b29db4f4110e0e5.png

    map_*() 和 col_summary() 具有以下几点区别

    • 所有 purrr 函数都是用 C 实现的。这使得它们的速度非常快,但牺牲了一些可读性

    • 第二个参数(即 .f,要应用的函数)可以是一个公式、一个字符向量或一个整型向量
    • map_*() 使用向 .f 传递一些附加参数,供其在每次调用时使用

    • 映射函数还可以保留名称

    快捷方式

    对于参数 .f,你可以使用几种快捷方式来减少输入量。假设你想对某个数据集中的每个分组都拟合一个线性模型。以下这个简单示例将 mtcars 数据集拆分成 3 个部分(按照气缸的值分类),并对每个部分拟合一个线性模型:

    models <- mtcars %>%
      split(.$cyl) %>%
      map(function(df) lm(mpg ~ wt, data = df))

    因为 R 中创建匿名函数的语法比较繁琐,所以 purrr 提供了一种更方便的快捷方式——单侧公式:

    models <- mtcars %>%
      split(.$cyl) %>%
      map(~lm(mpg ~ wt, data = .))

    我们在以上示例中使用了 . 作为一个代词:它表示当前列表元素(与 for 循环中用 i 表示当前索引是一样的)

    需要提取出 R平方 这样的摘要统计量

    需要先运行 summary() 函数,然后提取出结果中的 r.squared。我们可以使用匿名函数的快捷方式来完成这个操作:

    models %>%
      map(summary) %>%
      map_dbl(~.$r.squared)

    7dafcd19b59b016b1d6dc2280da49852.png

    因为提取命名成分的这种操作非常普遍,所以 purrr 提供了一种更为简洁的快捷方式:使用字符串

    models %>%
      map(summary) %>%
      map_dbl("r.squared")

    后面需要有apply()家族函数的基础知识,为了循序渐进,后面我们将会介绍apply家族,下回见。
    单基因泛癌分析链接

    TCGA单基因免疫相关泛癌分析,懒人福音, 重磅来袭mp.weixin.qq.com
    23a0b1d077b8fb0ec71c508815256218.png

    公众号“生信小课堂”

    606fc60b0e104a1d44f51384727e0439.png

    TCGA数据分析课程:生物信息学教学

    展开全文
  • R语言for循环

    千次阅读 2018-01-05 17:01:00
    for循环是一种重复控制结构,可以让您有效地编写一个需要执行特定次数的循环。 for (value in vector) { statements } 示例: j <- LETTERS[1:4] for ( i in j) { print(i) } 它产生如下结果: [1] ...
  • [R] R语言for循环机制

    2018-07-30 18:02:00
    在做数据分段截取的时候,发现for循环的表现和其他语言不太一样。 上代码: for( i in 1:4) { i = i + 1 print(i) } 结果: [1] 2 [1] 3 [1] 4 [1] 5 即作为循环计次的i, 并不会因为在循环体中的...
  • 现在想输出基于x的各个特征的不同取值(如x1:1,2,3)与y的分类(-1,1)匹配出的这样六对数据对中,每一对的数据(如x1=1,y=-1)的数据有多少条,为此写了一个for循环如下 ``` for(i in 1:ncol.tr-1){ uniq.x...
  • R语言for循环的替换方案

    千次阅读 2017-06-30 22:34:13
    R语言中,for循环运行比较慢。for(i in 1:1000){ print(i^2) }
  • next跳出本次循环 break跳出本层循环(当有多个for 循环时,即跳出最近的一个for循环) 转载于:https://www.cnblogs.com/Emily07/p/6122112.html
  • R语言中,使用变量前不需要声明变量的类型。变量是在赋值运算后才创建的。1. 变量命名对于变量的命名,我们主要记住下面三点就行了: 变量名是区分大小写的,比如:变量y和变量Y两者是不同变量; 变量名的首字母不...
  • 本文来源于 2018 年学习《R for Data Science》写的笔记。一起复习一下吧~函数有3个好处:更容易看清代码意图更容易对需求变化做出反应(改变)更容易减少程序bug除了函数,减少重复代码的另一种工具是迭代,它的作用...
  • sep = "_",c(1:3)) name (name1,name2,name3) mean.data=data.frame(row.names(data)) for (i in 1:3){ tmp (data,select = as.vector.factor(name[,i])) #筛选特定的样本 mean_ (apply(tmp, 1, mean)) #行求平均值 ...
  • R语言for循环结果赋值给不同变量名

    万次阅读 2018-01-10 23:26:43
    for (i in 1:9) {    test3 % filter(投标供应商名称 %in% data3$投标供应商[i])      yanfa1    yanfa1_1    yanfa1_2      yanfa1_2$new    yanfa1_3      yanfa1_3$中标...
  • 今天给大家带来一道某公司C语言面试题,话不多说直接上代码,你知道如下代码为什么会导致 for循环 成为一个死循环吗?大家可以仔细思考一下,如果思考不出来也没关系,继续向下滑动,我将会为大家揭开答案。如果有了...
  • R语言for循环

    2020-05-12 17:34:37
    R语言for循环 程序示例 数据集: ID t1 t2 t3 1 1 52.56441 10.074323 -18.81786 2 1 50.18791 10.058374 -18.30228 3 1 47.68246 10.476636 -21.96603 4 1 48.52158 10.005308 -20.05809 5 1 53.18525 11.335882 -...
  • 本文将对R语言for循环进行详细解读,以1到100连加求和与1到10的阶乘为例简单讲解for循环的使用。
  • R语言循环

    2019-09-17 16:29:31
    R语言的循环和C++,Java都比较类似,但是比较简单,一般用于定义用户自己定义的function。 for R的for循环的一般样式是: for (name in expr_1) expr_2 name是循环的variable, expr_1是一个表示循环指的vector。 ...
  • R语言学习-for循环

    2017-08-14 12:42:00
    先设置一个Data Frame df = data.frame(age=c(21, 22, 23),name=c('KEN', 'John', 'JIMI'),stringsAsFactors = FALSE); 输出df如下 age name1 21 KEN2 22 ...通过for循环来输出 for(i in 1:nrow(df)){ l<...
  • 我是一个R语言初学者,在使用For循环画图遇到一个问题,首先我有两个基因名,利用For语言画图得到p1,p2;最后我想要使用CombinePlots将得到的所有的p1,p2....组合起来, 我希望能够根据我输入基因的数量n,在plots...
  • R语言--for循环语句的使用

    千次阅读 2019-11-02 19:47:15
    R语言for循坏语句的使用(多个for) 对于多个for循还语句,R语言的执行顺序(以3个for为例):从外向内单个执行,里边循还完整,再往外一层,直到全部完成。话不多说,上例子: 代码: m<-c(1,2,3,4,5) n<-c('a...
  • r语言 删除循环数据 在我的上一篇博客文章中,我展示了似然函数从Think Bayes到R的转换,并且在我第一次尝试此函数时,我使用了两个嵌套的for循环。 likelihoods = function(names, mixes, observations) { ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 391
精华内容 156
关键字:

r语言for循环