精华内容
下载资源
问答
  • r语言循环求和
    2020-10-28 17:14:56

    R语言编程基础第一篇:语法基础,已经更新结束,下面是文章目录:

    R语言入门资料

    R语言基础教程——第1章:初识R

    R语言基础教程——第2章:R下载安装和环境搭建

    R语言基础教程——第2章:RStudio的使用教程

    R语言基础教程——第3章:数据结构——向量

    R语言基础教程——第3章:数据结构——矩阵

    R语言基础教程——第3章:数据结构——数组

    R语言基础教程——第3章:数据结构——数据框

    R语言基础教程——第3章:数据结构——列表

    R语言基础教程——第3章:数据结构——因子

    R语言基础教程——第3章:数据结构综合运用

    R语言基础教程——第4章:if语句

    R语言基础教程——第5章:循环结构

    R语言基础教程——第6章:函数

    R语言基础教程——第7章:面向对象编程(S3类)

    R语言基础教程——第7章:面向对象编程(S4类)

    R语言基础教程——第8章:文件的输入与输出

    R语言基础教程——第9章:字符串操作

    R语言基础教程——补充:CentOS 7系统服务器搭建R和Rstudio运行环境


    R语言基础教程电子书和视频,请阅读文章:R语言入门资料

    后续将推出R语言基础教程:

    第二篇:R语言绘图

    第三篇:R语言与数据分析(生物医学方向)

    da57abbd0f2faa0b1f316d98715a9706.png
    更多相关内容
  • 循环结构上机编程题,即求1!+2!+3!+···+10!,这里出现了几种不同的解题方法,在此我们来比较比较,一同学习求阶乘的和...这个我们就能很容易看出来,t就是在计算阶乘,每到一个数求一次阶乘,然后通过s累加求和。...

    循环结构上机编程题,即求1!+2!+3!+···+10!,这里出现了几种不同的解题方法,在此我们来比较比较,一同学习求阶乘的和的方法。

    首先,利用一个for循环来实现求阶乘的和的解题方法:

    c5246937779209e969da58a64504f0fb.png

    我们来看一看它的运算过程:

    6c3e668c0a77864984f105dac27246b9.png

    这是通过一个for循环算出了最终的答案,接下来看一下通过for循环嵌套的方法实现求阶乘的和。

    6828eefa07f087ff648a69ba73d1852f.png

    这个我们就能很容易看出来,t就是在计算阶乘,每到一个数求一次阶乘,然后通过s累加求和。

    第一种方法是每一项的阶乘在前一项的阶乘基础上求得;第二种方法是每一项的阶乘都通过一个for循环单独求出。两种方法都希望同学们掌握。

     可以对程序进一步扩展:

    2d5f66abfa5b3ea53e4a01ca4709410b.png

    在主函数中添加了一个while无限循环,循环体表示:从键盘上输入一个n值,求1!+2!+3!+......+n!,当输入的n值小于等于0时,则结束程序运行,退出循环。

    7cef4aceef6194270e81d97897c33960.png

    根据条件,当我们输入n的值<=0的时候,循环即可退出,如图

    83ab2a826c3b537e56d9b9023d2471d3.png

    拓展后的程序就非常灵活了,是不是瞬间感觉功能很强大了呢?就让我们好好学习C语言,多思考并实际操练一番,相信你也能写出这样的程序!

    2578d56fecfcf0f9bfe8e2447f05797b.png

    88a1c65e9d33d2691307bf75a735d5e0.png

    9ab60518e60fcefe9664d0a2e4e21c13.gif

    展开全文
  • r语言循环求和_R语言 apply家族

    千次阅读 2020-11-21 01:30:36
    既含睇兮又宜笑,子慕予...apply()函数是一个很R语言的函数,可以起到很好的替代冗余的for循环的作用,R语言循环操作for和while,都是基于R语言本身来实现的,而向量操作是基于底层的C语言函数实现的,所以使用app...

    6ea94532fb06790626a248da02f7aacc.png

    既含睇兮又宜笑,子慕予兮善窈窕。

    ——  《山鬼》

    apply()函数算是R语言里面很基础的一个函数,同时还有sapply()、lapply()、tapply()函数精简了apply()的用法。

    apply()函数是一个很R语言的函数,可以起到很好的替代冗余的for循环的作用,R语言的循环操作for和while,都是基于R语言本身来实现的,而向量操作是基于底层的C语言函数实现的,所以使用apply()家族进行向量计算是高性价比的。apply()可以面向数据框、列表、向量等,同时任何函数都可以传递给apply()函数。

    先简单的介绍一下rbind()和cbind()函数

    rbind()#以行的形式

    cbind()#以列的形式

    > x > View(x)> class(x)[1] "matrix"

    9355a69da5d950607d8160bf595dd21a.png

    > y > View(y)

    9ad03f6c976c7509c9eb4db83bf8f104.png

    apply()函数的用法如下:

    #apply:对每个小片断独立进行操作

    #apply(X, MARGIN, FUN, ...)

    #X:数组、矩阵、数据框;

    #MARGIN: 按行计算或按按列计算,1表示按行,2表示按列

    -MARGIN=1`: 操作基于行

    -MARGIN=2`: 操作基于列

    -MARGIN=c(1,2)`: 对行和列都进行操作

    #FUN: 使用哪种操作,内置的函数有mean(平均值)、medium(中位数)、sum(求和)、min(最小值)、max(最大值),当然还包括广大的用户自定义函数

    #按行循环,让数据框的x1列加1,并计算出x1,x2列的均值

    示例一:

    >  x > x      x1 x2[1,]  3  4[2,]  3  3[3,]  3  2[4,]  3  1[5,]  3  2[6,]  3  3[7,]  3  4[8,]  3  5> myFUN> apply(x,1,myFUN,c1='x1',c2=c('x1','x2'))      [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8][1,]  4.0    4  4.0    4  4.0    4  4.0    4[2,]  3.5    3  2.5    2  2.5    3  3.5    4

    也可以通过for循环来实现上述结果

    > df> for(i in 1:nrow(x)){+   row+   df+ } > df   V1  V21  4 3.52  4 3.03  4 2.54  4 2.05  4 2.56  4 3.07  4 3.58  4 4.0

    也可以直接通过向量化来实现上述结果

    > data.frame(x1=x[,1]+1,x2=rowMeans(x))  x1  x21  4 3.52  4 3.03  4 2.54  4 2.05  4 2.56  4 3.07  4 3.58  4 4.0

    示例二:

    使用apply()对一个matrix求和

    > m1 > m1     [,1] [,2] [,3] [,4] [,5] [,6][1,]    1    6    1    6    1    6[2,]    2    7    2    7    2    7[3,]    3    8    3    8    3    8[4,]    4    9    4    9    4    9[5,]    5   10    5   10    5   10> a_m1 > a_m1[1] 15 40 15 40 15 40

    lapply()函数的用法如下:

    lapply()函数中多出来的l代表的是list,所以lapply()和apply()的区别在于输出的格式,lapply()的输出是一个列表(list),所以 lapply()函数不需要MARGIN参数.

    lapply()用来对list、data.frame数据集进行循环,返回和X长度同样的list结构作为结果集

    lapply可以很方便地把list数据集进行循环操作,还可以用data.frame数据集按列进行循环,但如果传入的数据集是一个向量或矩阵对象,那么lapply会分别循环矩阵中的每个值,而不是按行或按列进行分组计算

    示例一:

    lapply对矩阵进行循环

    >  x > x     x1 x2[1,]  3  2[2,]  3  1[3,]  3  4[4,]  3  5> class(x)[1] "matrix"> lapply(x, sum)[[1]][1] 3[[2]][1] 3[[3]][1] 3[[4]][1] 3[[5]][1] 2[[6]][1] 1[[7]][1] 4[[8]][1] 5

    示例二:

    lapply对数据框进行循环

    > x     x1 x2[1,]  3  2[2,]  3  1[3,]  3  4[4,]  3  5> lapply(data.frame(x), sum)$x1[1] 12$x2[1] 12

    示例三:

    lapply对向量进行循环

    > movies > class(movies)[1] "character"> movies_lower > movies_lower[[1]][1] "spyderman"[[2]][1] "batman"[[3]][1] "vertigo"[[4]][1] "chinatown"> str(movies_lower)List of 4 $ : chr "spyderman" $ : chr "batman" $ : chr "vertigo" $ : chr "chinatown"

    我们可以看到,输出的内容是以list形式给出的,为了方便,我们可以使用unlist()函数进行整合

    > movies_lower > str(movies_lower) chr [1:4] "spyderman" "batman" "vertigo" "chinatown"> movies_lower[1] "spyderman" "batman"    "vertigo"   "chinatown"

    sapply()函数的用法如下:

    sapply()函数做的事情和lapply()一样,可以理解为是一个简化的lapply,返回的是一个向量(vector)使得对解读更加友好,其使用方法和lapply一样,sapply增加了2个参数simplify和USE.NAMES,主要就是让输出看起来更友好,返回值为向量,而不是list对象。simplify = T可以将输出结果数组化,如果设置为false,sapply()函数就和lapply()函数没有差别了,use.NAMEs = T可以设置字符串为字符名。

    #sapply(X, FUN, ..., simplify=TRUE, USE.NAMES = TRUE)

    #simplify: 是否数组化,当值array时,输出结果按数组进行分组

    #USE.NAMES: 如果X为字符串,TRUE设置字符串为数据名,FALSE不设置

    > x > x     x1 x2[1,]  3  2[2,]  3  1[3,]  3  4[4,]  3  5#对矩阵计算,计算过程同lapply函数,但是lapply返回值为list,sapply是向量> sapply(x, sum)[1] 3 3 3 3 2 1 4 5#对数据框计算> sapply(data.frame(x), sum)x1 x2 12 12 > class(lapply(x, sum))[1] "list"> class(sapply(x, sum))[1] "numeric"#如果simplify=FALSE和USE.NAMES=FALSE,那么完全sapply函数就等于lapply函数了> lapply(data.frame(x), sum)$x1[1] 12$x2[1] 12> sapply(data.frame(x), sum, simplify=FALSE, USE.NAMES=FALSE)$x1[1] 12$x2[1] 12
    #对于simplify为array时,我们可以参考下面的例子,构建一个三维数组,其中二个维度为方阵> a> a[1] 1 2#按数组分组> sapply(a,function(x) matrix(x,2,2), simplify='array'), , 1     [,1] [,2][1,]    1    1[2,]    1    1, , 2     [,1] [,2][1,]    2    2[2,]    2    2#默认情况,则自动合并分组> sapply(a,function(x) matrix(x,2,2))     [,1] [,2][1,]    1    2[2,]    1    2[3,]    1    2[4,]    1    2> val> val[1] "a" "b" "c" "d" "e" "f"#默认设置数据名> sapply(val,paste,USE.NAMES=TRUE)  a   b   c   d   e   f "a" "b" "c" "d" "e" "f" # USE.NAMES=FALSE,则不设置数据名> sapply(val,paste,USE.NAMES=FALSE)[1] "a" "b" "c" "d" "e" "f"

    ****总结

    82293ec7d130de9f54f551aaab7977ba.png

    tapply()函数的用法如下:

    #tapply用于分组的循环计算,通过INDEX参数可以把数据集X进行分组,相当于group by的操作

    #tapply(X, INDEX, FUN = NULL, ..., simplify = TRUE)

    Arguments:

    -X: 一个对象,一般都是向量

    -INDEX: 一个包含分类因子的列表(list)

    -FUN: 对X里面每个元素进行操作的函数

    #simplify : 是否数组化,当值array时,输出结果按数组进行分组

    #比如,计算不同品种的鸢尾花的花瓣(iris)长度的均值

    #通过iris$Species品种进行分组

    > data(iris)> head(iris)  Sepal.Length Sepal.Width Petal.Length Petal.Width Species1          5.1         3.5          1.4         0.2  setosa2          4.9         3.0          1.4         0.2  setosa3          4.7         3.2          1.3         0.2  setosa4          4.6         3.1          1.5         0.2  setosa5          5.0         3.6          1.4         0.2  setosa6          5.4         3.9          1.7         0.4  setosa> tapply(iris$Sepal.Width, iris$Species, median)    setosa versicolor  virginica        3.4        2.8        3.0

    也可以直接通过group by来实现上述结果

    > iris %>% group_by(Species) %>%+    summarise(mean(Sepal.Width))# A tibble: 3 x 2  Species    `mean(Sepal.Width)`                      1 setosa                    3.432 versicolor                2.773 virginica                 2.97

    76a59103d750cdc4b79cedf7b37bc49a.png

    展开全文
  • R语言求概率的优缺点优点:1.不需要深奥的概率知识2.不需要复杂计算3.简单调整后即可在其他相问类型问题中使用缺点:1.难以得到精确结果,只能得到近似结果事件的概率的计算事件概率计算的一般步骤:(1)给出初值条件...

    上一节我们学习了循环,今天我们学习用循环求事件的概率。

    用R语言求概率的优缺点

    优点:


    1.不需要深奥的概率知识
    2.不需要复杂计算
    3.简单调整后即可在其他相问类型问题中使用
    缺点:

    1.难以得到精确结果,只能得到近似结果

    事件的概率的计算

    事件概率计算的一般步骤:

    (1)给出初值条件

    (2)给定循环次数(循环次数要大)

    (3)创建记事本(记录变量)

    (4)开始循环(){进行实验,判断结果是否满足条件,并将结果记录在记事本中}

    (5)求记事本的平均值,得到近似概率。

    一、常用的语句

    1、产生随机数

    (1)runif(n);产生n个0~1的随机数

    > runif(5)

    [1] 0.28910039 0.06846302 0.83459763 0.72112323 0.33078734

    (2)runif(n,a,b);产生n个a~b的随机数

    > runif(5,2,5)

    [1] 4.816284 3.533282 2.670764 2.706416 4.577741

    > runif(5,2,5)

    [1] 4.501711 4.692043 2.897736 4.190780 2.252439

    (3)numeric(n);产生n个零的向量

    > numeric(6)

    [1] 0 0 0 0 0 0

    2、抽样

    sample(x,size,replace=T或F),从数据x中随机抽取size个样本,当replace=T时为放回,F为不放回。

    例题1、盒子里有10个球,上面分别写1~10号数字,现在随便取3个球,求和为9的概率?

    > x> n> y

    > for(i in 1:n){
    + a

    + y[i]

    > mean(y)              #y的平均数,得到近似概率

    [1] 0.0236

    例题2、盒子里有4个白球,3个红球,从中任取3个球,正好取3个白球的概率?

    > x

    > n

    > y

    > for(i in 1:n){
    + a

    + y[i]+ }  #这个地方用了双重判断,首先判断a里面有没有白球,有的话再判断a里面白球的个数是不是正好三个,是的话y就输出1,不是的话就输出0

    > mean(y)        #y的平均数,得到近似概率

    [1] 0.1205

    例题3、第一个盒子里有4个白球,3个红球,第二个盒子里有5个白球,8个红球,从第一个盒子里取一个,从第二个盒子里取一个,求两个球为同一个颜色的概率?

    > x1> x2> n> y> for(i in 1:n){
    + a+ b

    + y[i]> mean(y)
    [1] 0.4795

      今天的学习就到这里。大家有问题的话,欢迎留言,我们下期再见,谢谢大家

    47e2ef031a28e8ac8efe887bbcfa33a4.png
    展开全文
  • R语言作为一门统计语言,相比其他编程语言有着简洁、高效、易上手的特点。在大数据和机器学习快速发展的今天,R 已经成为数据分析领域炙手可热的通用语言。人邮君根据自身出版情况、读者反馈以及豆瓣评分,整理出一...
  • R语言|for循环————R语言入门到入土系列(八)

    万次阅读 多人点赞 2020-05-06 16:12:56
    本文将对R语言for循环进行详细解读,以1到100连加求和与1到10的阶乘为例简单讲解for循环的使用。
  • 本文介绍了R语言while循环的写法,并以连加1到1000为例简单介绍用法
  • 学习R语言的过程中,后期逐渐就会用循环语句来减少自己的重复工作。所以了解for循环,是必备技能之一。 R语言中的for循环结构是: for (循环变量 in 序列向量){ 表达式1 表达式2 ... } 要注意的是,括号里面...
  • R语言有三种方式实现循环:(1)for循环、while循环(2)apply函数族(3)泛型函数map一. for循环、while循环首先作两点说明:(1)关于“for循环运行速度慢”的说法,实际上已经过时了,现在的R、Matlab等软件经过...
  • 小浣熊 科研猫 是时候关注我们一波了他来了,他来了,他带着教程走来了~距离上次R语言系列更新已经过去快一周了,先跟大家说声不好意思,实话实说更新速度的确慢了一点。跟大家解释一下:所有写文章的老师都是我们...
  • R中主要的循环函数(loop functions)有 lapply( )、sapply( )、apply( )、tapply( ) 和 mapply( )。lapply( )lapply( )对列表中每个元素,包括各种类型的对象(向量、矩阵、数据框等),运用函数,返回一个新的列表。...
  • 简单的求和通过sum()函数可以完成,但是R里面自带一些其他的求和方式,可以避免循环。 按行求和,即每一行元素的加和,用rowSums() 注意S大写,后有s 按列求和,即每一列元素的加和,用colSums(),同上   ...
  • r语言循环计算积分

    2022-03-30 23:18:15
    请使用R语言编程实现函数:f(x)=1+exp(-x)*sin(x)在区间[0,10]上的定积分值。基本思想:按照数学分析中的分割求和思想,比较两次分割下,小矩形的面积和只差,小于10^(-6),就认为该分割下,积分值趋于稳定。
  • R语言apply()族函数概要,用来替代经典循环结构提高遍历效率
  • ################ 生成数据  ...################ 不用for循环,实现赋值 data5 data5[(relation == 5) | (relation == 6), 4:5] 转载于:https://www.cnblogs.com/Emily07/p/7592817.html
  • 高级循环函数R语言

    2021-11-08 09:55:30
    高级循环 常规方法 # 利用for循环找到每个数不重复因子 # seq_along取位置 prime_factors<-list(one=1,two=2,three=list(3,3)) unique_primes<-vector("list",length(prime_factors)) for(i in seq_along...
  • R 循环 循环(loop)是R用来重复完成某个任务的方法,让我们用score函数来解决一个实际问题。 老虎机程序模拟的是现实生活中一批颇具争议的老虎机,人们认为这批老虎机有作弊嫌疑。这批老虎机的返还率看似为40美分/美元,...
  • R语言在处理矩阵运算的时候较java和python来说更加容易,因为R语言本身就是一个统计学使用的软件。再已有的运用R进行的研究中,矩阵是比较常用的一种计算方法,下面对本次编程中矩阵的使用方法做一个总结。 1、产生...
  • R语言入门基础教程,为个人学习笔记总结,本节介绍了向量,下标,循环法则,NaN和Na特殊值以及一些常用内置函数
  • R语言简单应用掷骰子游戏

    千次阅读 2021-10-27 15:50:54
    游戏状态 点 2,3,12 FALSE NA 7,11 TRUE NA 4,5,6,8,9,19 NA 与得分相同 ```r #replace = TRUE有放回抽样 touzi (1:6) two_d6 (n) { random_numbers ( sample(touzi,2*n,replace = T), nrow = 2 ) print(random_...
  • >w(list = ls()) #生成一个100元素的[-100,100]间的随机数向量,种子为23 >set.seed(23) >a<-runif(100,-100,100) #求其平均值、最大值、最小值、和 >...#函数及参数:sort(x,decreaing=Fal...
  • 今天用R语音算国王下棋故事答案的...然后我又用R语言直接算2^64-1,结果和函数算出来的结果一样,还是偶数。 这就十分奇怪。最后我开始一个个数字尝试,想找到是从那个数字开始出现这种奇怪的现象。最后发现在循环...
  • R语言计算两个向量的加法(元素依次相加)
  • R语言中向量的加法和乘法

    千次阅读 2021-01-17 11:34:56
    R语言中,不同长度的向量也是可以相加和相乘的,乘法的规则和加法类似1,相同长度的向量相加> x> y> z> z[1] 2 4 6 8规则就是 x[1]+y[1],x[2]+y[2],x[3]+y[3],x[4]+y[4]> x> y> z> z[1...
  • R语言数据结构之数组

    千次阅读 2021-10-12 08:28:29
    R 语言可以创建一维或多维数组。R 语言数组是一个同一类型的集合,矩阵 matrix 其实就是一个二维数组。 Usage array(data = NA, dim = length(data), dimnames = NULL) 1. 数组创建 # 一维数组 a <- array...
  • R语言使用rowSums函数计算dataframe中的所有数据行的行数据加和值
  • 我之前预告过的 R 语言新书,起名为《R语言编程—基于tidyverse》,本书的目的是为了在国内推广 R 语言和 R 语言最新技术,电子版将始终跟踪最新并免费分享。本书非常适合新手 R 语言入门,老手 R 知识汰旧换新。是...
  • # data ('train.csv') library(tidyverse) data2 (data, names_from = "gene", values_from = "num") data2[is.na(data2)] 多个...循环数据库3到6列,按列,函数) result(data2[2:4],2,myFUN) result (result) result
  • 目标程序的三大流程while 循环基本使用break 和 continuewhile 循环嵌套01. 程序的三大流程在程序开发中,一共有三种流程方式:顺序 —— 从上向下,顺序执行代码分支 —— 根据条件判断,决定执行代码的 分支循环 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 13,290
精华内容 5,316
关键字:

r语言循环求和