news 2026/7/26 19:30:17

R • exercises

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
R • exercises

catalogue

  • 题目1:变量赋值和基本运算
  • 题目2:向量创建和元素访问
  • 题目3:使用内置函数计算统计量
  • 题目4:混合运算与优先级理解
  • 题目5:模运算与整数除法
  • 题目6:类型转换与比较运算
  • 题目7:因子(Factor)的创建与理解
  • 题目8:逻辑(Logical)向量与索引提取
  • 题目9:列表(List)的创建与元素访问
  • 题目10:基础if-else判断(数字性质判断)
  • 题目11:嵌套if与逻辑运算符(成绩等级评定)
  • 题目12:ifelse()向量化函数
    • 解惑
  • 题目13:基础for循环(数列求和)
  • 题目14:while循环与条件控制(斐波那契数列)
  • 题目15:循环控制与next语句(特定倍数查找)

题目1:变量赋值和基本运算

num<-10square<-num**2cube<-num**3print(paste("平方为:",square,"立方为:",cube))#用print()将字符串和变量值同时输出要结合paste()cat("平方为:",square,"立方为:",cube,"\n")

题目2:向量创建和元素访问

vec<-c(5,10,15,20,25)cat("第三个元素为:",vec[3])cat("向量长度为:",length(vec))

题目3:使用内置函数计算统计量

data<-c(12,15,18,21,24)cat("平均值为:",mean(data),"总和为:",sum(data),"标准差为:",sd(data))

题目4:混合运算与优先级理解

result1<-3+4*5result2<-(3+4)*5print(paste("3 + 4 * 5 = ",result1," ","(3 + 4) * 5 = ",result2))

题目5:模运算与整数除法

days<-365weeks<-days%/%7remaining_days<-days%%7cat("365天是",weeks,"个星期零",remaining_days,"天")

题目6:类型转换与比较运算

num_var<-123char_var<-"123"converted_var<-as.numeric(char_var)cat("num_var与converted_var的值是否相等:",num_var==converted_var)#==只比较值cat("num_var与char_var的值是否相等:",num_var==char_var)cat("num_var的类型为",class(num_var))cat("char_var的类型为",class(char_var))cat("converted_var的类型为",class(converted_var))cat("num_var与converted_var是否相等:",identical(num_var,converted_var))#identical()比较值、类型cat("num_var与char_var是否相等:",identical(num_var,char_var))

题目7:因子(Factor)的创建与理解

unclass()的结果单独打印,这样能更清晰地显示整数向量。对于向量结果,使用print()cat()更能保持原始格式。

weather<-c("Sunny","Cloudy","Rainy","Sunny","Rainy")weather_factor<-factor(weather,levels=c("Rainy","Cloudy","Sunny"))print(weather_factor)print("因子的内部数值表示:")print(unclass(weahter_factor))print("因子的水平:")print(levels(weahter_factor))#print(paste("因子的内部数值表示:",unclass(weather_factor)))#cat("因子的水平:",levels(weather_factor))

题目8:逻辑(Logical)向量与索引提取

scores<-c(85,92,78,60,95,53)pass_logical<-scores>=60print(pass_logical)print(scores[pass_logical])

题目9:列表(List)的创建与元素访问

my_list<-list(c(1,2,3),"Hello World",TRUE)print(my_list[[2]])#提取元素本身print(class(my_list[[2]]))print(my_list[2])#提取子列表print(class(my_list[2]))names(my_list)<-c("numbers","greeting","flag")print(my_list$greeting)

题目10:基础if-else判断(数字性质判断)

user_input<-readline("请输入一个数字:")#获取输入num<-suppressWarnings(as.numeric(user_input))#使其不报错,如果转换错误则num为NULLif(is.na(num)){#处理非数字输入的情况cat("错误:您输入的不是有效的数字!\n")}else{#处理正确输入的情况if(num>0){cat("正数\n")}elseif(num<0){cat("负数\n")}else{cat("零\n")}}

题目11:嵌套if与逻辑运算符(成绩等级评定)

user_input<-readline("请输入成绩:")num<-suppressWarnings(as.numeric(user_input))if(is.na(num)){cat(user_input,"不是有效数字\n")}else{if(num>100|num<0)cat("Invalid Score")elseif(num>=90)cat("Excellent")elseif(num>=80)cat("Good")elseif(num>=70)cat("Average")elseif(num>=60)cat("Pass")elsecat("Fail")}

题目12:ifelse()向量化函数

# 1. 创建数值向量x<-c(-2,5,0,12,-5,9,100)# 2. 使用ifelse()函数进行向量化判断result_vec<-ifelse(x>0,"Positive","Non-Positive")# 3. 打印结果print(result_vec)# 4. 使用传统的for循环和if-else语句实现同样功能result_loop<-character(length(x))# 创建空字符向量存储结果for(iin1:length(x)){if(x[i]>0){result_loop[i]<-"Positive"}else{result_loop[i]<-"Non-Positive"}}# 打印循环实现的结果print(result_loop)# 验证两种方法结果是否一致identical(result_vec,result_loop)

解惑

为什么空字符向量用result_loop <- character(length(x))而不是result_loop <- c():因为result_loop <- character(length(x))提前分配好了存储结果的内存空间,而result_loop <- c()每次循环时都会重新分配内存,当数据量大时会严重影响性能,这就是为什么在传统for循环中通常需要预先初始化结果向量的原因。

题目13:基础for循环(数列求和)

numbers<-c(2,5,8,11,14)sum_of_squares<-0for(iinnumbers){#i用num更好看sum_of_squares<-sum_of_squares+i^2}cat("数列平方和为:",sum_of_squares)#使用cat打印,print应为print(paste())

题目14:while循环与条件控制(斐波那契数列)

prev<-1# 上一个curr<-1# 当前fib_seq<-c(prev,curr)while(TRUE){next_val<-prev+curr# 下一个if(next_val>100)breakfib_seq<-c(fib_seq,next_val)# 符合要求的放这prev<-curr# 把上一个更新为curr,因为有了新的“下一个”curr<-next_val# 把前“下一个”更新为curr,因为有了新的“下一个”}cat("斐波那契数列为:",fib_seq,"\n")

题目15:循环控制与next语句(特定倍数查找)

is_prime<-function(n){if(n<=1){# 小于等于1的不是质数return(FALSE)}elseif(n==2){# 2是最小的质数return(TRUE)}elseif(n==3){# 3在下面循环里会被误判为非质数,不能用||把3和前面的2放一起,因为这样只会打印2return(TRUE)}elseif(n%%2==0){return(FALSE)}# 偶数(除了2)不是质数for(iinseq(3,floor(sqrt(n)),by=2)){# 检查从3到sqrt(n)的奇数,避免重复检查,因为2是唯一的偶质数,且奇数的因数只能是奇数if(n%%i==0){return(FALSE)# 质数不能被其它数整除}}return(TRUE)# 不能放在for (i in seq(3, floor(sqrt(n)), by=2))的else里,因为可能有很多不整除(导致提前退出循环),但只要有一个整除就不要了}for(iin1:50){if(i%%15==0){# 放前面,扔掉不要的,再对剩下的判断cat("跳过15的倍数:",i,"\n")next# 跳出这次循环,进入下一次循环}if(i%%3==0&&i%%5!=0){if(is_prime(i))# 2是质数,但2根本进不了if,所以不打印 ,is_prime是个判断质数的通用函数cat(i,"*\n",sep="")# 质数加星号,sep避免星号和质数间的空格elsecat(i,"\n")# 不是质数,直接打}}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/26 19:29:11

PowerToys汉化终极指南:解锁Windows效率工具的完整中文体验

PowerToys汉化终极指南&#xff1a;解锁Windows效率工具的完整中文体验 【免费下载链接】PowerToys-CN PowerToys Simplified Chinese Translation 微软增强工具箱 自制汉化 项目地址: https://gitcode.com/gh_mirrors/po/PowerToys-CN 还在为PowerToys的英文界面发愁吗…

作者头像 李华
网站建设 2026/7/26 19:29:07

Inkscape光线追踪:5步完成专业光学设计的终极指南

Inkscape光线追踪&#xff1a;5步完成专业光学设计的终极指南 【免费下载链接】inkscape-raytracing An extension for Inkscape that makes it easier to draw optical diagrams. 项目地址: https://gitcode.com/gh_mirrors/in/inkscape-raytracing 还在为绘制复杂的光…

作者头像 李华
网站建设 2026/7/26 19:28:31

RemixIcon 图标库完全指南:如何为你的项目快速添加2500+专业图标

RemixIcon 图标库完全指南&#xff1a;如何为你的项目快速添加2500专业图标 【免费下载链接】RemixIcon Open source neutral style icon system 项目地址: https://gitcode.com/gh_mirrors/re/RemixIcon 还在为项目界面缺乏视觉吸引力而烦恼吗&#xff1f;RemixIcon 开…

作者头像 李华
网站建设 2026/7/26 19:26:59

模型压缩技术:量化与蒸馏实现AI图像生成轻量化

1. 模型压缩技术的前沿突破上周在实验室测试新模型时&#xff0c;一个12GB的Stable Diffusion模型文件让我的显卡发出了不堪重负的轰鸣。这让我想起字节跳动最新发布的模型压缩技术——能将12GB的生成模型压缩到1.6GB&#xff0c;同时保持图像生成质量。这不仅是存储空间的节省…

作者头像 李华
网站建设 2026/7/26 19:24:49

3大渲染难题的终极解决方案:Photon光影包深度技术解析

3大渲染难题的终极解决方案&#xff1a;Photon光影包深度技术解析 【免费下载链接】photon A gameplay-focused shader pack for Minecraft 项目地址: https://gitcode.com/gh_mirrors/photon3/photon 在Minecraft的视觉体验优化领域&#xff0c;Photon光影包代表了游戏…

作者头像 李华
网站建设 2026/7/26 19:21:54

ACKTR算法解析:Kronecker分解与信任域优化的强化学习实践

1. ACKTR算法核心思想解析 ACKTR&#xff08;Actor-Critic using Kronecker-factored Trust Region&#xff09;是2017年由多伦多大学和纽约大学研究者提出的深度强化学习算法。它本质上属于策略梯度方法&#xff0c;但在优化方式上做出了重大创新。 1.1 算法基础架构 ACKTR建…

作者头像 李华