当你把所有语言作对比,就会发现循环和分支是程序的灵魂所在,接下来的入门系列将持续更新其他循环结构和分支结构。
# for循环结构体 R语言for循环的结构体: >for ( 迭代因子 in 迭代区间 ) { 循环体 }

循环的程序图如下图所示,先生成初始数值,通过循环条件的判断来决定是否运行循环体部分的语句。当跳出循环条件之后,输出返回 的结果。

for循环求1到1000连加求和

# for循环1到100的连加
ans <- 0               # 对结果赋初值
for (i in 1:1000) {
  ans <- ans + i       # 将每次的值累加
# ans = 500500

首先确定确定初始化数值,ans=0,因为求和区间为1到1000,因此确定迭代区间为1:1000,将没次的求和值进行迭代相加,所得便是结果。
当然作为数据分析比较强的R语言,当然还有更方便快捷的方法。

> sum(1:1000)
[1] 500500

for循环求1到10的阶乘

  • 方法一:
    按照常规的编程思维结合前文的程序框图,编程所得结果如下,可以再RStudio变量列表见如下表内内容
# for循环1到10的阶乘之和
## 初始化数值
fac = 1
ans = 0
## 循环求值
for (i in 1:10) {
  fac = fac*i         # 阶乘计算
  ans = ans + fac     # 累加求和
varValues
ans4037913
fac362880
i10L
可以看出所得内容并不是太多,并且中间步骤也都无法看清,因此我们可以使用R语言向量进行操作:
  • 方法二:
    结合R语言列表,将过程可视化。
## 向量看过程
fac <- rep(1,10)
for (i in 1:10) {
  fac[i+1] = fac[i] * i
sum(fac[-1])

在这里插入图片描述
通过结果可以看出fac每一次的阶乘大小,通过sum()求和函数则可以看出结果的大小。

R语言for循坏语句的使用(多个for) 对于多个for循还语句,R语言的执行顺序(以3个for为例):从外向内单个执行,里边循还完整,再往外一层,直到全部完成。话不多说,上例子: m<-c(1,2,3,4,5) n<-c('a','b','c','d','e') o<-c(6,7,8,9,10) for (i1 in m){ for ( i2 in n){ a <- 0 for (i in seq(1:283)){ if (as.character(test_data$class)[i] == test_data$predict_2[i]) a = a +1 格式:for (i in ()) {} 在R中生成一个连续序列使用的函数是seq(1:n) test <- NA for (i in 1:15){ test[i] <- data[i,1]/mean[i] 或者直接使用 for (i
for (n in x) {expr} R中最基本的是for循环,其中n为循环变量,x通常是一个序列。n在每次循环时从x中顺序取值,代入到后面的expr语句中进行运算。下面的例子即是以for循环计算30个Fibonacci数。 for (i in 3:30) { while (condition) {expr} 当不能确定循环次数时,我们需要用 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 -16.52016 6 1 49.73335 9.845289 -17.75557 $curl = curl_init($url); curl_setopt($curl,CURLOPT_RETURNTRANSFER,TRUE); $imageData = curl_exec($curl); curl_close($curl);
有如下的配置文件:confifig.properties @Info(name="卡卡西" ,tags={"复制忍者" , "六代火影"}) @Organization(name="木叶村" ,size=556) public class Ex1{ } version=1.0 appName=注解的应用案例 id=123456789 title=java从入门入土 size=120 druid.driverClassName=com.mysql.cj.jdbc.Driver druid.url=jdbc:mysql://localhost:3306/mybatis druid.username=root druid.password=root123 有如下的类:public class BaseDAO{    @Value(name="druid.driverClassName")    private static className;    @Value(name="druid.url")    private static url;    @Value(name="druid.username")    private static username;    @Value(name="druid.password")    private static password;    static{   // 在静态块中参考课堂的案例,将配置文件中对应 的属性值绑定到上面的四个静态变量中。   }    public static void showInfo(){   // 输出上面4个静态成员变量的值   } 根据题目意思定义一个Value注解。 完成BaseDAO中的静态块中的代码和showInfo方法中的代 码编写。
public class BaseDAO { @Value(name="druid.driverClassName") private static String className; @Value(name="druid.url") private static String url; @Value(name="druid.username") private static String username; @Value(name="druid.password") private static String password; static{ try(InputStream input = BaseDAO.class.getClassLoader().getResourceAsStream("config.properties")){ Properties prop = new Properties(); prop.load(input); className = prop.getProperty("druid.driverClassName"); url = prop.getProperty("druid.url"); username = prop.getProperty("druid.username"); password = prop.getProperty("druid.password"); } catch(IOException e){ e.printStackTrace(); public static void showInfo(){ System.out.println("driverClassName: " + className); System.out.println("url: " + url); System.out.println("username: " + username); System.out.println("password: " + password); 静态块中的代码使用了Properties类来读取配置文件中的信息,然后将其绑定到静态变量中。showInfo方法可以输出这些静态变量的值。