发布时间:2026/7/26 19:30:48
R • exercises catalogue题目1变量赋值和基本运算题目2向量创建和元素访问题目3使用内置函数计算统计量题目4混合运算与优先级理解题目5模运算与整数除法题目6类型转换与比较运算题目7因子Factor的创建与理解题目8逻辑Logical向量与索引提取题目9列表List的创建与元素访问题目10基础if-else判断数字性质判断题目11嵌套if与逻辑运算符成绩等级评定题目12ifelse()向量化函数解惑题目13基础for循环数列求和题目14while循环与条件控制斐波那契数列题目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-34*5result2-(34)*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-123converted_var-as.numeric(char_var)cat(num_var与converted_var的值是否相等,num_varconverted_var)#只比较值cat(num_var与char_var的值是否相等,num_varchar_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,levelsc(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-scores60print(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(num0){cat(正数\n)}elseif(num0){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(num100|num0)cat(Invalid Score)elseif(num90)cat(Excellent)elseif(num80)cat(Good)elseif(num70)cat(Average)elseif(num60)cat(Pass)elsecat(Fail)}题目12ifelse()向量化函数# 1. 创建数值向量x-c(-2,5,0,12,-5,9,100)# 2. 使用ifelse()函数进行向量化判断result_vec-ifelse(x0,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_squaresi^2}cat(数列平方和为,sum_of_squares)#使用cat打印print应为print(paste())题目14while循环与条件控制斐波那契数列prev-1# 上一个curr-1# 当前fib_seq-c(prev,curr)while(TRUE){next_val-prevcurr# 下一个if(next_val100)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(n1){# 小于等于1的不是质数return(FALSE)}elseif(n2){# 2是最小的质数return(TRUE)}elseif(n3){# 3在下面循环里会被误判为非质数,不能用||把3和前面的2放一起因为这样只会打印2return(TRUE)}elseif(n%%20){return(FALSE)}# 偶数除了2不是质数for(iinseq(3,floor(sqrt(n)),by2)){# 检查从3到sqrt(n)的奇数避免重复检查因为2是唯一的偶质数且奇数的因数只能是奇数if(n%%i0){return(FALSE)# 质数不能被其它数整除}}return(TRUE)# 不能放在for (i in seq(3, floor(sqrt(n)), by2))的else里因为可能有很多不整除导致提前退出循环但只要有一个整除就不要了}for(iin1:50){if(i%%150){# 放前面扔掉不要的再对剩下的判断cat(跳过15的倍数,i,\n)next# 跳出这次循环进入下一次循环}if(i%%30i%%5!0){if(is_prime(i))# 2是质数但2根本进不了if所以不打印 is_prime是个判断质数的通用函数cat(i,*\n,sep)# 质数加星号sep避免星号和质数间的空格elsecat(i,\n)# 不是质数直接打}}

相关新闻

2026/7/26 19:30:48

WzComparerR2:打开冒险岛游戏资源的全能工具箱

WzComparerR2:打开冒险岛游戏资源的全能工具箱 【免费下载链接】WzComparerR2 Maplestory online Extractor 项目地址: https://gitcode.com/gh_mirrors/wz/WzComparerR2 你是否曾好奇《冒险岛》游戏中那些精美的角色动画、华丽的装备效果、复杂的地图场景是…

2026/7/26 19:30:48

Python毕设项目:轻量化机器视觉人脸检测认证系统设计 图像降噪优化的 OpenCV 人脸识别系统 (源码+文档,讲解、调试运行,定制等)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/7/26 20:25:51

贾子智慧公理与AI能力替代性分析

1. 研究背景与核心问题这个研究课题站在了一个非常有意思的交叉点上——将传统哲学智慧与现代人工智能技术进行对话。贾子(贾谊)作为西汉著名思想家,其"智慧公理"体系蕴含着独特的人类认知框架。当我们用这个古老的思想透镜来观察当…

2026/7/26 20:25:51

开源AI资源:100美元训练类ChatGPT模型全攻略

1. 开源AI资源的价值与现状最近在开发者社区流传着一份包含92个优质AI资源的GitHub开源清单,这份清单最吸引人的地方在于其宣称"仅需100美元即可训练类ChatGPT模型"。作为从业多年的AI工程师,我第一时间验证了这些资源的实用性和可行性。这份清…

2026/7/26 20:25:51

Windows 10系统ActionCenter.dll缺失修复指南

1. 问题现象与背景解析最近在帮同事排查一台Windows 10系统启动异常时,发现事件查看器里频繁报出"无法加载ActionCenter.dll"的错误。这个看似普通的DLL文件缺失问题,实际上会影响系统通知中心、安全中心等多个核心功能的正常运行。更麻烦的是…

2026/7/26 20:25:51

技术系统中的逆向生长:从版本控制到系统恢复的工程实践

1. 技术视角下的"逆向生长"概念解析在技术领域,"逆向生长"并非字面意义上的年龄倒退,而是指系统、数据或流程的逆向工程与回溯能力。这种能力在现代软件开发、数据分析和系统架构中具有重要价值。当我们讨论"逆向生长"是否…

2026/7/26 20:25:51

从零实现轻量级C++ WebSocket客户端:RFC 6455协议详解与工程实践

1. 项目概述:一个免费的C WebSocket客户端实现 最近在做一个需要与后端服务进行实时双向通信的项目,传统的HTTP轮询方案在延迟和服务器压力上都不太理想,于是把目光投向了WebSocket。作为一个C开发者,我习惯性地去GitHub上找轮子&…

2026/7/26 0:03:36

PDF合并与动态水印的工程化方案:2026国内免费工具实测对比

一、背景与测试方案 在实际项目交付中,PDF文件合并与版权保护水印的叠加是一个高频但容易被低估的技术需求。典型的处理链路涉及:多源PDF的文件流合并、页面级水印渲染(含透明度混合与图层叠加)、输出文件体积控制。看似简单的操作…

2026/7/26 0:03:36

PDF合并与动态水印的工程化方案:2026国内免费工具实测对比

一、背景与测试方案 在实际项目交付中,PDF文件合并与版权保护水印的叠加是一个高频但容易被低估的技术需求。典型的处理链路涉及:多源PDF的文件流合并、页面级水印渲染(含透明度混合与图层叠加)、输出文件体积控制。看似简单的操作…

2026/7/26 2:45:59

3个高效策略:快速掌握Axure中文界面配置

3个高效策略:快速掌握Axure中文界面配置 【免费下载链接】axure-cn Chinese language file for Axure RP. Axure RP 简体中文语言包。支持 Axure 11、10、9。不定期更新。 项目地址: https://gitcode.com/gh_mirrors/ax/axure-cn 还在为Axure RP的英文界面感…