R语言教程课后习题答案(持续更新中~~)

news2024/12/26 0:25:58

R语言教程网址如下

https://www.math.pku.edu.cn/teachers/lidf/docs/Rbook/html/_Rbook/index.html

目录

source()函数可以运行保存在一个文本文件中的源程序

R向量下标和子集

数值型向量及其运算

日期功能

R因子类型


source()函数可以运行保存在一个文本文件中的源程序

如下内容保存在文件ssq.r中

sum.of.squares <- function(x){
  sum(x^2)
}

用source()命令运行

source("ssq.r")

可以运用sum.of.squares(1:5)

sum.of.squares(1:5)

R向量下标和子集

class.csv

name,sex,age,height,weight
Alice,F,13,56.5,84
Becka,F,13,65.3,98
Gail,F,14,64.3,90
Karen,F,12,56.3,77
Kathy,F,12,59.8,84.5
Mary,F,15,66.5,112
Sandy,F,11,51.3,50.5
Sharon,F,15,62.5,112.5
Tammy,F,14,62.8,102.5
Alfred,M,14,69,112.5
Duke,M,14,63.5,102.5
Guido,M,15,67,133
James,M,12,57.3,83
Jeffrey,M,13,62.5,84
John,M,12,59,99.5
Philip,M,16,72,150
Robert,M,12,64.8,128
Thomas,M,11,57.5,85
William,M,15,66.5,112
#取出其中的name和age列到变量name和age中
d.class <- read.csv("class.csv", header=TRUE, stringsAsFactors=FALSE)
name <- d.class[,"name"]
age <- d.class[,"age"]

1.求出age中第3, 5, 7号的值

age[c(3,5,7)]
输出 [1] 14 12 11

2.用变量age, 求出达到15岁及以上的那些值

age[age>=15]
输出 [1] 15 15 15 16 15

3.用变量name和age, 求出Mary与James的年龄

mary_age <- age[name == "Mary"]
james_age <- age[name == "James"]

> mary_age
[1] 15
> james_age
[1] 12

4.求age中除Mary与James这两人之外的那些人的年龄值,保存到变量age1中

age1<-age[name!="Mary" & name!="James"]
> age1
 [1] 13 13 14 12 12 11 15 14 14 14 15 13 12 16 12 11 15

5.假设向量x长度为n, 其元素是{1,2,…,n}的一个重排。 可以把x看成一个i到x[i]的映射(i在{1,2,…,n}中取值)。 求向量y, 保存了上述映射的逆映射,即: 如果x[i]=j, 则y[j]=i

n <- length(x)
y <- vector("integer", length = n)

for (i in 1:n) {
  j <- x[i]
  y[j] <- i
}

数值型向量及其运算

显示1到100的整数的平方根和立方根

for (i in 1:100) {
  sqrt_val <- sqrt(i)
  cubert_val <- i^(1/3)
  print(paste("整数:", i, " 平方根:", sqrt_val, " 立方根:", cubert_val))
}

 生成[0,1]区间上等间隔的100个格子点存入变量x中

x <- seq(0, 1, length.out = 100)
print(x)

日期功能

#dates.csv中包含如下内容
"出生日期","发病日期"
"1941/3/8","2007/1/1"
"1972/1/24","2007/1/1"
"1932/6/1","2007/1/1"
"1947/5/17","2007/1/1"
"1943/3/10","2007/1/1"
"1940/1/8","2007/1/1"
"1947/8/5","2007/1/1"
"2005/4/14","2007/1/1"
"1961/6/23","2007/1/2"
"1949/1/10","2007/1/2"
date1 <- dates.tab[,'出生日期']
date2 <- dates.tab[,'发病日期']

1.把date1、date2转换为R的POSIXct日期型

dates_converted1 <- as.POSIXct(date1, format = "%Y/%m/%d")
> dates_converted
 [1] "1941-03-08 CST" "1972-01-24 CST" "1932-06-01 CST" "1947-05-17 CDT"
 [5] "1943-03-10 CDT" "1940-01-08 CST" "1947-08-05 CDT" "2005-04-14 CST"
 [9] "1961-06-23 CST" "1949-01-10 CST"
dates_converted2 <- as.POSIXct(date2, format = "%Y/%m/%d")
> dates_converted
 [1] "2007-01-01 CST" "2007-01-01 CST" "2007-01-01 CST" "2007-01-01 CST"
 [5] "2007-01-01 CST" "2007-01-01 CST" "2007-01-01 CST" "2007-01-01 CST"
 [9] "2007-01-02 CST" "2007-01-02 CST"

2.date1中的各个出生年

library(lubridate)

date1 <- c("1941/3/8", "1972/1/24", "1932/6/1", "1947/5/17", "1943/3/10",
           "1940/1/8", "1947/8/5", "2005/4/14", "1961/6/23", "1949/1/10")

birth_years1 <- year(as.Date(date1, format = "%Y/%m/%d"))

print(birth_years1)

birth_years2 <- year(as.Date(date2, format = "%Y/%m/%d"))

print(birth_years2)

 3. 计算发病时的年龄,以周岁论(过生日才算)

ages <- year(date2) - year(date1)
for (i in seq_along(ages)) {
     if (month(date2[i]) < month(date1[i])) {
         ages[i] <- ages[i] - 1
     }
 }
print(ages)

#输出
 [1] 65 35 74 59 63 67 59  1 45 58

4.把date2中发病年月转换为’monyy’格式,这里mon是如FEB这样英文三字母缩写, yy是两数字的年份

> formatted_date <- format(as.Date(date2), "%b%y")
> 
> formatted_date
 [1] "1月07" "1月07" "1月07" "1月07" "1月07" "1月07" "1月07" "1月07" "1月07"
[10] "1月07"

R因子类型

1.把sex变量转换为一个新的因子,F显示成“Female”,M显示成“Male”

factor(sex, levels = c("F", "M"), labels = c("Female", "Male")

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

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

相关文章

学信息系统项目管理师第4版系列18_采购管理

1. 协议 1.1. 合同 1.1.1. 国际合作的项目经理应牢记&#xff0c;无论合同规定如何详尽&#xff0c;文化和当地法律对合同及其可执行性均有影响 1.2. 服务水平协议&#xff08;SLA&#xff09; 1.3. 谅解备忘录 1.4. 协议备忘录&#xff08;MOA&#xff09; 1.5. 订购单 …

十天学完基础数据结构-第八天(哈希表(Hash Table))

哈希表的基本概念 哈希表是一种数据结构&#xff0c;用于存储键值对。它的核心思想是将键通过哈希函数转化为索引&#xff0c;然后将值存储在该索引位置的数据结构中。 哈希函数的作用 哈希函数是哈希表的关键部分。它将输入&#xff08;键&#xff09;映射到哈希表的索引位…

Python常用功能的标准代码

后台运行并保存log 1 2 3 4 5 6 7 8 9 nohup python -u test.py > test.log 2>&1 & #最后的&表示后台运行 #2 输出错误信息到提示符窗口 #1 表示输出信息到提示符窗口, 1前面的&注意添加, 否则还会创建一个名为1的文件 #最后会把日志文件输出到test.log文…

卷积神经网络-池化层和激活层

2.池化层 根据特征图上的局部统计信息进行下采样&#xff0c;在保留有用信息的同时减少特征图的大小。和卷积层不同的是&#xff0c;池化层不包含需要学习的参数。最大池化(max-pooling)在一个局部区域选最大值作为输出&#xff0c;而平均池化(average pooling)计算一个局部区…

卷积神经网络-卷积层

卷积神经网络 卷积神经网络&#xff08;convolutional neural network&#xff0c;CNN&#xff09;是一类包含卷积计算且具有深度结构的前馈神经网络&#xff0c;是深度学习的代表算法之一。卷积神经网络具有表征学习能力&#xff0c;能够按其阶层结构对输入信息进行平移不变分…

H5移动端购物商城系统源码 小型商城全新简洁风格全新UI 支持易支付接口

一款比较简单的 H5 移动端购物商城系统源码&#xff0c;比较适合单品商城、小型商城使用。带有易支付接口。 源码下载&#xff1a;https://download.csdn.net/download/m0_66047725/88391704 源码下载2&#xff1a;评论留言或私信留言

【Spring笔记03】Spring依赖注入各种数据类型

这篇文章&#xff0c;详细介绍一下Spring框架中如何注入各种数据类型&#xff0c;包含&#xff1a;注入基本数据类型、数组、集合、Map映射、Property属性、注入空字符串、注入null值、注入特殊字符等内容&#xff0c;以及如何使用命名空间进行依赖注入。 目录 一、注入各种数据…

云原生Kubernetes:简化K8S应用部署工具Helm

目录 一、理论 1.HELM 2.部署HELM2 3.部署HELM3 二、实验 1.部署 HELM2 2.部署HELM3 三、问题 1.api版本过期 2.helm初始化报错 3.pod状态为ImagePullBackOff 4.helm 命令显示 no repositories to show 的错误 5.Helm安装报错 6.git命令报错 7.CentOS 7 下git c…

互联网Java工程师面试题·Elasticsearch 篇·第一弹

目录 1、elasticsearch 了解多少&#xff0c;说说你们公司 es 的集群架构&#xff0c;索引数据大小&#xff0c;分片有多少&#xff0c;以及一些调优手段 。 1.1 设计阶段调优 1.2 写入调优 1.3 查询调优 1.4 其他调优 2、elasticsearch 的倒排索引是什么 3、elastic…

ToDoList使用自定义事件传值

MyTop与MyFooter与App之间传递数据涉及到的就是子给父传递数据&#xff0c;MyList和MyItem与App涉及到爷孙传递数据。 之前的MyTop是使用props接收App传值&#xff0c;然后再在methods里面调用&#xff0c;现在使用自定义事件来处理子组件和父组件之间传递数据。 图是之前的…

新款UI动态壁纸头像潮图小程序源码

新款UI动态壁纸头像潮图小程序源码&#xff0c;不需要域名服务器&#xff0c;直接添加合法域名&#xff0c;上传发布就能使用。 可以对接开通流量主&#xff0c;个人也能运营&#xff0c;不需要服务器源码完整。整合头像&#xff0c;动态壁纸&#xff0c;文案功能齐全。 源码…

代码随想录Day12 二叉树 LeetCode T102二叉树的层序遍历 T226 翻转二叉树 T101 对称二叉树

本文思路和详细讲解来自于:代码随想录 (programmercarl.com) LeetCode T102 二叉树的层序遍历 题目链接:102. 二叉树的层序遍历 - 力扣&#xff08;LeetCode&#xff09; 题目思路: 本题使用队列辅助完成,讲解主要函数CheckOrder:首先判断root是否为空,是就直接返回,然后创建…

芯驰D9评测(3)--建立开发环境

1. 建立交叉编译链接环境 官网下载的SDK包中就有交叉工具链&#xff0c;米尔提供的这个 SDK 中除了包含各种源代码外还提供了必要的交叉工具链&#xff0c;可以直接用于编译应用程序等。 用户可以直接使用次交叉编译工具链来建立一个独立的开发环境&#xff0c;可单独编译…

发光文字跟随鼠标

效果展示 CSS / JavaScript 知识点 background-image 绘制网格背景filter 属性的运用onmousemove 事件运用getBoundingClientRect 方法的运用 实现页面基础结构 <!-- 光标 --> <div class"cursour"></div>实现网格背景样式 body {min-height: …

如何用 Tana AI 一站式批量润色整理音频笔记?

&#xff08;注&#xff1a;本文为小报童精选文章&#xff0c;已订阅小报童或加入知识星球「玉树芝兰」用户请勿重复付费&#xff09; 用好 Tana AI Builder &#xff0c;充分体验和发挥 AI 工作流的强大性能。 痛点 作为一个足够懒惰的写作者&#xff0c;我对音频转文本这事儿…

智慧公厕如何实现?

随着城市化进程的加速&#xff0c;人们对公共设施的需求也日益增长。而公厕&#xff0c;作为城市基础设施的一部分&#xff0c;扮演着重要的角色。然而&#xff0c;传统的公厕存在着诸多问题&#xff0c;例如管理不善、环境脏乱等&#xff0c;给人们的生活带来了不便。为了改善…

笔试强训Day13

T1&#xff1a;跳石板 [小易来到了一条石板路前&#xff0c;每块石板上从1挨着编号为&#xff1a;1、2、3....... 这条石板路要根据特殊的规则才能前进&#xff1a;对于小易当前所在的编号为K的 石板&#xff0c;小易单次只能往前跳K的一个约数(不含1和K)步&#xff0c;即跳…

【LeetCode刷题笔记】双指针

剑指 Offer 21.调整数组顺序使奇数位于偶数前面 解题思路&#xff1a; 对撞指针 &#xff0c; 从左边不停的找第一个偶数&#xff0c;从右边不停的找第一个奇数 &#xff0c;找到后 交换 两者位置 本题与【905. 按奇偶排序数组】几乎雷同。 剑指 Offer 57.和为s的两个数字 本题…

SpringCloud-消息组件

1 简介 了解过RabbitMQ后&#xff0c;可能我们会遇到不同的系统在用不同的队列。比如系统A用的Kafka&#xff0c;系统B用的RabbitMQ&#xff0c;但是没了解过Kafka&#xff0c;因此可以使用Spring Stream&#xff0c;它能够屏蔽地产&#xff0c;像JDBC一样&#xff0c;只关心SQ…

超聚变安装银河麒麟服务器系统ky10-server-x86

超聚变-通过BMC口进服务器管理界面 如下图为BMC管理口&#xff1a; 默认BMC口IP&#xff1a;https://192.168.2.100 l浏览器打开网页&#xff0c;输入用户名和密码 登陆后&#xff0c;如下图红框处&#xff0c;选择“启动虚拟控制台”——选择“HTML集成远程控制台” 系统银河麒…