R语言——类与对象

news2025/1/19 20:44:21

已知2024年4月23日是星期五,编写一个函数day.in.a.week (x, y,z),参数x和y和z分别代表年月日,判断这一天是否存在(例如,2018年没有2月29日,也没有11月31日),如果不存在,返回日期不存在;否则计算并返回当天是星期几。星期几判断方法参照:Sys.Date()   weekdays(Sys.Date())

编写程序实现冒泡排序,对向量c(4,3,2,5,6,1)进行排序。

练习使用list列表构建一个学生对象(包含学生姓名、年龄、绩点),并运用class将对象的类设置为student。

使用构造函数创建S3类对象(包含学生姓名、年龄、绩点),类名为student,同时编写一个类的专属方法,打印出学生绩点。如:Hi xiaoming,your GPA is 4

练习使用setClass定义S4学生类student_one,并创建一个学生对象(包含学生姓名、年龄、绩点),同时使用validity进行绩点合理性判断。在控制台打印出学生信息

  1. 已知2024年4月23日是星期五,编写一个函数day.in.a.week (x, y,z),参数x和y和z分别代表年月日,判断这一天是否存在(例如,2018年没有2月29日,也没有11月31日),如果不存在,返回日期不存在;否则计算并返回当天是星期几。星期几判断方法参照:Sys.Date()   weekdays(Sys.Date())

代码:

day_in_a_week <- function(x, y, z) {

  # 判断日期是否存在

  if (!isTRUE(all.equal(as.Date(paste(x, y, z, sep="-"), format="%Y-%m-%d"), as.Date(paste(x, y, z, sep="-"))))) {

    return("日期不存在")

  } else {

    # 计算星期几

    weekday <- weekdays(as.Date(paste(x, y, z, sep="-")))

    return(paste("这一天是星期", weekday))

  }

}

# 测试函数

day_in_a_week(2024, 4, 23)

截图:

  1. 编写程序实现冒泡排序,对向量c(4,3,2,5,6,1)进行排序。

代码:

bubble_sort <- function(vec) {

  n <- length(vec)

  for (i in 1:(n - 1)) {

    for (j in 1:(n - i)) {

      if (vec[j] > vec[j + 1]) {

        temp <- vec[j]

        vec[j] <- vec[j + 1]

        vec[j + 1] <- temp

      }

    }

  }

  return(vec)

}

# 测试冒泡排序算法

vec <- c(4, 3, 2, 5, 6, 1)

sorted_vec <- bubble_sort(vec)

print(sorted_vec)

截图:

  1. 练习使用list列表构建一个学生对象(包含学生姓名、年龄、绩点),并运用class将对象的类设置为student。

代码:

student <- list(

  name = "张三",

  age = 20,

  gpa = 3.5

)

class(student) <- "student"



# 测试学生对象

print(student)

截图:

  1. 使用构造函数创建S3类对象(包含学生姓名、年龄、绩点),类名为student,同时编写一个类的专属方法,打印出学生绩点。如:Hi xiaoming,your GPA is 4

代码:

student <- function(name, age, gpa) {

  obj <- list(

    name = name,

    age = age,

    gpa = gpa

  )

  class(obj) <- "student"

  return(obj)

}



print_gpa <- function(obj) {

  cat("Hi", obj$name, ", your GPA is", obj$gpa, "\n")

}

# 创建学生对象

xiaoming <- student("小明", 18, 4.0)

print_gpa(xiaoming)

截图:

  1. 练习使用setClass定义S4学生类student_one,并创建一个学生对象(包含学生姓名、年龄、绩点),同时使用validity进行绩点合理性判断。在控制台打印出学生信息

代码:

setClass("student_one",

         slots = list(

           name = "character",

           age = "numeric",

           gpa = "numeric"

         ),

         validity = function(object) {

           if (object@gpa < 0 | object@gpa > 4.0) {

             return("绩点不合理")

           }

         }

)



# 创建学生对象

xiaohong <- new("student_one",

                name = "小红",

                age = 20,

                gpa = 3.8)

# 打印学生信息

print(xiaohong)

截图:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1847815.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2024097期传足14场胜负前瞻

2024097期售止时间为6月22日&#xff08;周六&#xff09;20点30分&#xff0c;敬请留意&#xff1a; 本期14场由欧洲杯、美洲杯、美职联组成&#xff0c;1.5以下赔率2场&#xff0c;1.5-2.0赔率10场&#xff0c;其他场次是平半盘、平盘。本期14场难度中等。以下为基础盘前瞻&a…

针对河南大学数据结构傻逼学堂在线的自动化脚本

首先展示一下我们的答案 {1: [对象], 2: [关系]} {1: [非数值计算], 2: [操作]} {1: [线性表]} [D] [B] [B] [C] [C] {1: [操作]} {1: [数据关系, 数据对象上关系的集合]} {1: [性质相同]} {1: [物理结构]} {1: [存储结构, 操作表示]} [C] [B] [D] [B] [D] [true] [false] [fa…

css文字镂空加描边

css文字镂空加描边 <!DOCTYPE html> <html><head><meta charset"utf-8"><title>文字镂空</title><style>/* 公用样式 */html,body{width: 100%;height: 100%;position: relative;}/* html{overflow-y: scroll;} */*{margi…

(Python)可变类型不可变类型;引用传递值传递;浅拷贝深拷贝

从一段代码开始说事&#xff0c;先上代码&#xff1a; a [[1],[2],[3]] b [[4,5],[6,7],[7,8]] for i,j in zip(a,b):print(i,j)i [9]#i[0] 8j[:2][1,2]print(i, j) print(a) print(b) 运行的结果&#xff1a; [1] [4, 5] [9] [1, 2] [2] [6, 7] [9] [1, 2] [3] [7, 8] …

淘宝扭蛋机小程序:互联网时代下行业的发展动力

近几年&#xff0c;扭蛋机在潮玩市场风靡&#xff0c;与各类IP合作&#xff0c;推出各种新颖有趣的扭蛋商品&#xff0c;吸引了众多的IP粉丝&#xff0c;他们会通过扭蛋机进行抽奖&#xff0c;获得喜欢的商品。 目前&#xff0c;移动应用程序不断升级优化&#xff0c;“互联网…

RGB彩色模型理解与编程实例

一、引言 RGB彩色模型中的R、G和B为三原色&#xff0c;通常R、G和B分别用8位表示&#xff0c;因此24位的RGB 真彩色图像能表示16777216种颜色。在如右图所示RGB彩色立方体可知&#xff0c;任意两种原色混合可以合成一种新的颜色。红&#xff08;1&#xff0c;0&#xff0c;0&a…

番外篇 | YOLOv8算法解析和实战应用:车辆检测 + 车辆追踪 + 行驶速度计算

前言:Hello大家好,我是小哥谈。YOLOv8是ultralytics公司在2023年1月10号开源的,是YOLOv5的下一个重大更新版本,目前支持图像分类、物体检测和实例分割任务,在还没有开源时就收到了用户的广泛关注。它是一个SOTA模型,建立在以前YOLO版本的成功基础上,并引入了新的功能和改…

mock-前端数据模拟

简介 数据模拟不是开发流程中的必要一环 Json-server 简介&#xff1a; json-server 是一个简单的 Node.js 服务端应用程序&#xff0c;这个工具的主要作用是提供一个模拟的后端服务&#xff0c;可以在前端开发过程中独立于后端进行简单工作。 使用&#xff1a; 1、 安装…

CVPR 2024盛况空前,上海科技大学夺得最佳学生论文奖,惊艳全场

CVPR 2024盛况空前&#xff01;上海科技大学夺得最佳学生论文奖&#xff0c;惊艳全场&#xff01; 会议之眼 快讯 2024 年 CVPR &#xff08;Computer Vision and Pattern Recogntion Conference) 即国际计算机视觉与模式识别会议&#xff0c;于6月17日至21日正在美国西雅图召…

基于强化学习的目标跟踪论文合集

文章目录 2020UAV Maneuvering Target Tracking in Uncertain Environments Based on Deep Reinforcement Learning and Meta-LearningUAV Target Tracking in Urban Environments Using Deep Reinforcement Learning 2021Research on Vehicle Dispatch Problem Based on Kuhn-…

【面试题】风险评估和应急响应的工作流程

风险评估和应急响应是网络安全管理中两个重要的环节。下面分别介绍它们的工作流程&#xff1a; 一、风险评估工作流程&#xff1a; 1.确定评估范围&#xff1a;明确需要评估的信息系统或资产的范围。 2.资产识别&#xff1a;识别并列出所有需要评估的资产&#xff0c;包括硬件…

【自动驾驶】运动底盘状态数据:里程计、IMU、运动学分析、串口通信协议

文章目录 控制器与运动底盘状态数据:里程计、IMU运动学分析与轮子运动学分析公式串口通信控制与反馈通讯协议串口通信反馈上行数据帧解析串口通信控制下行数据帧解析代码实现IMU、里程计数据的获取、解析、计算控制器与运动底盘状态数据:里程计、IMU 控制器需要负责外发底盘…

剑指offer 算法题(搜索二维矩阵)

剑指offer 第二题 去力扣里测试算法 思路一&#xff1a; 直接暴力遍历二维数组。 class Solution { public:bool searchMatrix(vector<vector<int>>& matrix, int target) {for (unsigned int i{ 0 }; i < matrix.size(); i){for (unsigned int j{ 0 };…

ASP.NET Core 6.0 使用 Log4Net 和 Nlog日志中间件

前言 两年前,浅浅的学过 .NET 6,为啥要记录下来,大概是为了以后搭架子留下引线,还有抛砖引玉。 1. 环境准备 下载 建议使用 Visual Studio 2022 开发版 官网的下载地址:Visual Studio 2022 IDE - 适用于软件开发人员的编程工具借助 Visual Studio 设计,具有自动完成…

Word中删除空白页

① 文字后面出现的空白页 把鼠标放在空白页的位置&#xff0c;按住Ctrl Delete即可。 ② 表格后面的空白页 把鼠标放在空白页左侧&#xff0c;直到出现一个空白的箭头&#xff0c;点击一下选中空白页&#xff0c;然后再Ctrl D&#xff0c;打开字体选项卡&#xff0c;在效果中…

智能体合集

海外版coze: 前端代码助手 后端代码助手&#xff1a; 前端代码助手&#xff1a;

【shell脚本速成】函数

文章目录 一、函数1.1、函数介绍1.2、函数定义1.3、函数调用 &#x1f308;你好呀&#xff01;我是 山顶风景独好 &#x1f388;欢迎踏入我的博客世界&#xff0c;能与您在此邂逅&#xff0c;真是缘分使然&#xff01;&#x1f60a; &#x1f338;愿您在此停留的每一刻&#xf…

鸿蒙开发通信与连接:【@ohos.wifiext (WLAN)】

WLAN 说明&#xff1a; 本模块首批接口从API version 8开始支持。后续版本的新增接口&#xff0c;采用上角标单独标记接口的起始版本。 该文档中的接口只供非通用类型产品使用&#xff0c;如路由器等&#xff0c;对于常规类型产品&#xff0c;不应该使用这些接口。 导入模块 …

自动备份SQL Server数据库,试试这4种方法!

各种规模的企业都使用 SQL 数据库来存储数据。因此&#xff0c;备份 SQL Server 数据库对于确保数据安全并在发生灾难时可恢复至关重要。对于 SQL 数据库备份&#xff0c;有多种可行的方法&#xff0c;对于特定组织来说&#xff0c;方法将取决于其具体需求。 SQL Server 备份的…

java:Multiple Bounds--类型变量(TypeVariable)定义的高级用法--<A extends ClassAIfAIfB >

做Java开发工作好多年了。今天偶然翻到 java.lang.TypeVariable的源码&#xff0c;好奇为什么 TypeVariable.getBounds()返回类型是个数组。 一般不都是<T extends Number> 这样用码&#xff1f;T难道还能extends多个类型&#xff1f; 同问&#xff1a;不应该是extend,为…