R统计学2 - 数据分析入门问题21-40

news2025/2/28 3:13:27

往期R统计学文章:

R统计学1 - 基础操作入门问题1-20

21. 如何对矩阵按行 (列) 作计算?

使用函数 apply()

vec = 1:20
# 转换为矩阵
mat = matrix (vec , ncol=4)
# [,1] [,2] [,3] [,4]
# [1,]    1    6   11   16
# [2,]    2    7   12   17
# [3,]    3    8   13   18
# [4,]    4    9   14   19
# [5,]    5   10   15   20

cumsum(vec)
# 返回一个向量,其元素是参数元素的累积和。
#  [1]   1   3   6  10  15  21  28  36  45  55  66  78  91 105 120 136 153 171 190 210

# 对列进行计算
apply (mat, 2 , cumsum)
# [,1] [,2] [,3] [,4]
# [1,]    1    6   11   16
# [2,]    3   13   23   33
# [3,]    6   21   36   51
# [4,]   10   30   50   70
# [5,]   15   40   65   90

22.一组数中随机抽取数据?

函数 sample()
sample(n) 随机组合 1, . . . , n
sample(x) 随机组合向量 x, length(x) > 1
sample(x, replace = T) 解靴带法
sample(x,n) 非放回的从 x 中抽取 n 项
sample(x,n,replace = T) 放回的从 x 中抽取 n 项
sample(x,n, replace = T ,prob = p) 以概率p,放回的从 x 中抽取 n 项

n <- 1000

# 随机抽取1000个数,取值范围-1至1
x <- sample(c(-1,1), n, replace = T)

# 绘制折线图
plot(cumsum(x), type = "l", main = "Sums")

# 模拟生成正态分布数据
# rnorm(n=100 , mean=0, sd=1)

折线图

23. 判断数据框的列是否为数字?

sapply(dataframe, is.numeric)

24.如何将数据标准化?

使用scale函数。

x <- c(rnorm(100), 2 * rnorm(30))
m <- scale(x, scale = F)
n <- scale(x, center = F)

25.如何获取分位数?

x <- c (1 , 4 , 6 , 17 , 50 , 51 , 70 , 100)
quantile(x)
#    0%    25%    50%    75%   100% 
#  1.00   5.50  33.50  55.75 100.00

26.如何生成对角矩阵?

对一个向量使用 diag() 函数,得到对角线元素为向量的对角矩阵.

diag(3)
# [,1] [,2] [,3]
# [1,]    1    0    0
# [2,]    0    1    0
# [3,]    0    0    1

27. 如何构造上(下)三角矩阵?

使用lower.tri() 和 upper.tri()函数。

# 下三角矩阵
Rmat <- matrix(1:16, 4:4)
Rmat[upper.tri(Rmat)] <- 0
Rmat
# [,1] [,2] [,3] [,4]
# [1,]    1    0    0    0
# [2,]    2    6    0    0
# [3,]    3    7   11    0
# [4,]    4    8   12   16

# 上三角矩阵
Rmat <- matrix(1:16, 4:4)
Rmat[lower.tri(Rmat)] <- 0
Rmat
# [,1] [,2] [,3] [,4]
# [1,]    1    5    9   13
# [2,]    0    6   10   14
# [3,]    0    0   11   15
# [4,]    0    0    0   16

28. 如何求矩阵各行 (列) 的均值?

使用 apply() 函数或colMeans() 函数。

n <- 5
m <- 4
# 构造5行,4列矩阵
mat <- matrix(1:m*n, m, n)
mat
# [,1] [,2] [,3] [,4] [,5]
# [1,]    5    5    5    5    5
# [2,]   10   10   10   10   10
# [3,]   15   15   15   15   15
# [4,]   20   20   20   20   20

mat_mean <- matrix(apply(mat, 2, mean), m, n, by=T)
# 或 mat_mean <- matrix(colMeans(mat), m, n, by=T)

mat_mean
# [,1] [,2] [,3] [,4] [,5]
# [1,] 12.5 12.5 12.5 12.5 12.5
# [2,] 12.5 12.5 12.5 12.5 12.5
# [3,] 12.5 12.5 12.5 12.5 12.5
# [4,] 12.5 12.5 12.5 12.5 12.5

29 如何求一元方程的根?

使用uniroot()函数,该函数基于二分法计算方程根,初始区间不满足求根条件,则会报错。

f <- function(x)x^3 - 2*x -1
uniroot(f, c(0,2))
# $root
# [1] 1.618018
# 
# $f.root
# [1] -9.17404e-05
# 
# $iter
# [1] 6
# 
# $init.it
# [1] NA
# 
# $estim.prec
# [1] 6.103516e-05

30. 如何在 R 里面求(偏)导数?

使用函数D()

f1 <- expression(sin(x)*x)
D(f1,"x")
# cos(x) * x + sin(x)

f2 <- expression(x^2*y + y^2)
D(f2,"y")
# x^2 + 2 * y

31. 如何在 R 中计算高斯(正态)分布的概率计算?

如已知 X˜N(3, 1),计算P(2 ≤ X ≤ 5)。

# 利用正态分布的累积分布函数 pnorm
pnorm (5 ,3 , 1 ) − pnorm (2 ,3 ,1 )
# 计算结果为 0.8185946,即下图中阴影的面积。

32. R如何在保存文件时用变量替换文件名内容?

使用 paste() 函数。

save_string = "test"
for(var in range(1,3)){
	# paste("File_", var, ".txt", sep = "")为组合的文件名
  write.table(save_string , paste("File_", var, ".txt", sep = ""))
}

33. 如何在R中使用正则表达式?

使用 grep() 函数。

index <- grep("J.", month.abb)
# [1] 1 6 7
month.abb[index]
# [1] "Jan" "Jun" "Jul"

34. R语言如何截取字符串?

使用 substr() 函数。

str <- "abcdefg"
substr(str, 2, 4)
# [1] "bcd"
substring(str, 1:6, 1:3)
# [1] "a" "b" "c" ""  ""  ""

35. R语言如何对日期进行算术运算?

使用 difftime(arg) 函数, arg支持“auto”, “secs”, “mins”, “hours”, “days”, “weeks”参数。

d1 <- c("24/02/01")
d2 <- c("24/03/01")

D1 <-as.Date(d1, "%y/%m/%d")
D2 <-as.Date(d2, "%y/%m/%d")

difftime(D2, D1, units = "days")
# Time difference of 29 days

difftime(D2, D1, units = "weeks")
# Time difference of 4.142857 weeks

36. R语言如何对系统时间进行格式化输出?

使用 format() 函数。

format((Sys.Date()), format="%A, %d %B %Y")

37. R语言如何在同一画面画出多张图?

推荐使用 layout() 函数。

layout(matrix(c(1, 1, 1,
                2, 3, 4), nr=2, byrow=T))
hist(rnorm(10, 0, 1), col = "VioletRed")
hist(rnorm(10, 0, 1), col = "VioletRed")
hist(rnorm(10, 0, 1), col = "VioletRed")
hist(rnorm(10, 0, 1), col = "VioletRed")

多张图布局效果

38. R语言如何设置图形边缘大小?

修改绘图参数 par(mar = c(bottom, left, top, right))

# 默认矩阵
par(mar = c(5, 4, 4, 2) + 0.1)

39. R语言 常用的 pch 符号都有哪些?

pch 是 plotting character 的缩写。pch 符号可以使用 “0 : 25” 来表示 26 个标识(参
看右图 “pch 符号”)。当然符号也可以使用#, %, ∗, |, +, −, ., o, O。值得注意的是,21 : 25
这几个符号可以在 points 函数使用不同的颜色填充(bg= 参数)。

pch编号对应图形

op <- par(bg = "light blue")
x <- seq(0, 2*pi, len=51)

plot(x, sin(x), type="o", bg=par("bg"))
points(x, sin(x), pch=21, cex=1.5, bg="red")

绘制点图

40. R语言如何给图形加上图例?

绘制图形后,使用 legend函数。

# 查看自带isis数据集
head(iris)
# Sepal.Length Sepal.Width Petal.Length Petal.Width Species
# 1          5.1         3.5          1.4         0.2  setosa
# 2          4.9         3.0          1.4         0.2  setosa
# 3          4.7         3.2          1.3         0.2  setosa
# 4          4.6         3.1          1.5         0.2  setosa
# 5          5.0         3.6          1.4         0.2  setosa
# 6          5.4         3.9          1.7         0.4  setosa
with(iris, plot(Sepal.Length, Sepal.Width, 
                pch=as.numeric(Species), cex=1.2))

table(iris$Species)
# setosa versicolor  virginica 
# 50         50         50 

legend(6.1, 4.1, c("setosa", "versicolor", "virginica"),
       cex=1.5, pch=1:3)

图例

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

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

相关文章

前端框架的发展历史介绍

前端框架的发展历史是Web技术进步的一个重要方面。从最初的简单HTML页面到现在的复杂单页应用程序&#xff08;SPA&#xff09;&#xff0c;前端框架和库的发展极大地推动了Web应用程序的构建方式。以下是一些关键的前端框架和库&#xff0c;以及它们的发布年份、创建者和主要特…

UnicodeDecodeError: ‘gbk‘和Error: Command ‘pip install ‘pycocotools>=2.0

今天重新弄YOLOv5的时候发现不能用了&#xff0c;刚开始给我报这个错误 subprocess.CalledProcessError: Command ‘pip install ‘pycocotools&#xff1e;2.0‘‘ returned non-zero exit statu 说这个包安装不了 根据他的指令pip install ‘pycocotools&#xff1e;2.0这个根…

从零开始:神经网络(2)——MP模型

声明&#xff1a;本文章是根据网上资料&#xff0c;加上自己整理和理解而成&#xff0c;仅为记录自己学习的点点滴滴。可能有错误&#xff0c;欢迎大家指正。 神经元相关知识&#xff0c;详见从零开始&#xff1a;神经网络——神经元和梯度下降-CSDN博客 1、什么是M-P 模型 人…

CorelDRAW Graphics Suite2024专业图形设计软件Windows/Mac最新25.0.0.230版

CorelDRAW Graphics Suite 2024是一款专业的图形设计软件&#xff0c;它集成了CorelDRAW Standard 2024和其他高级图形处理工具&#xff0c;为用户提供了全面的图形设计和编辑解决方案。 该软件拥有强大的矢量编辑功能&#xff0c;用户可以轻松创建和编辑矢量图形&#xff0c;…

数字化转型导师坚鹏:科技金融政策、案例及数字化营销

科技金融政策、案例及数字化营销 课程背景&#xff1a; 很多银行存在以下问题&#xff1a; 不清楚科技金融有哪些利好政策&#xff1f; 不知道科技金融有哪些成功案例&#xff1f; 不知道科技金融如何数字化营销&#xff1f; 课程特色&#xff1a; 以案例的方式解读原…

聚类简单讲解

聚类任务 聚类任务是指将一组数据分成多个不同的组&#xff08;或簇&#xff09;&#xff0c;使得同一组内的数据点彼此相似&#xff0c;而不同组之间的数据点尽可能不相似的过程。聚类任务的目标是发现数据中的固有结构&#xff0c;而不需要事先知道数据的类别信息。聚类算法…

IntelliJ IDEA Dev 容器

​一、dev 容器 开发容器&#xff08;dev 容器&#xff09;是一个 Docker 容器&#xff0c;配置为用作功能齐全的开发环境。 IntelliJ IDEA 允许您使用此类容器来编辑、构建和运行您的项目。 IntelliJ IDEA 还支持多个容器连接&#xff0c;这些连接可以使用 Docker Compose …

多种方法求解数组排序

&#x1d649;&#x1d65e;&#x1d658;&#x1d65a;!!&#x1f44f;&#x1f3fb;‧✧̣̥̇‧✦&#x1f44f;&#x1f3fb;‧✧̣̥̇‧✦ &#x1f44f;&#x1f3fb;‧✧̣̥̇:Solitary_walk ⸝⋆ ━━━┓ - 个性标签 - &#xff1a;来于“云”的“羽球人”。…

Day29:安全开发-JS应用DOM树加密编码库断点调试逆向分析元素属性操作

目录 JS原生开发-DOM树-用户交互 JS导入库开发-编码加密-逆向调试 思维导图 JS知识点&#xff1a; 功能&#xff1a;登录验证&#xff0c;文件操作&#xff0c;SQL操作&#xff0c;云应用接入&#xff0c;框架开发&#xff0c;打包器使用等 技术&#xff1a;原生开发&#x…

HTML 学习笔记——标签创建小技巧

<!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Emmrt工具</title></head><body>&…

超越Chain-of-Thought LLM 推理

原文地址&#xff1a;Beyond Chain-of-Thought LLM Reasoning 2024 年 2 月 13 日 介绍 最近的一项研究解决了需要增强大型语言模型 (LLM) 的推理能力&#xff0c;超越直接推理 (Direct Reasoning&#xff0c;DR) 框架&#xff0c;例如思想链和自我一致性&#xff0c;这些框架可…

ARM/Linux嵌入式面经(一):海康威视

海康威视 1.函数指针和指针函数区别 1.定义的差异 函数指针&#xff1a;函数指针的定义涉及到函数的地址。例如&#xff0c;定义一个指向函数的指针 int (*fp)(int)&#xff0c;这里 fp 是一个指针&#xff0c;它指向一个接受一个整数参数并返回整数的函数。 指针函数&#…

了解华为(PVID VLAN)与思科的(Native VLAN)本征VLAN的区别并学习思科网络中二层交换机的三层结构局域网VLAN配置

一、什么是二层交换机&#xff1f; 二层交换机&#xff08;Layer 2 Switch&#xff09;是一种网络设备&#xff0c;主要工作在OSI模型的数据链路层&#xff08;第二层&#xff09;&#xff0c;用于在局域网内部进行数据包的交换和转发。二层交换机通过学习MAC地址表&#xff0…

Excel F4键的作用

目录 一. 单元格相对/绝对引用转换二. 重复上一步操作 一. 单元格相对/绝对引用转换 ⏹ 使用F4键 如下图所示&#xff0c;B1单元格引用了A1单元格的内容。此时是使用相对引用&#xff0c;可以按下键盘上的F4键进行相对引用和绝对引用的转换。 二. 重复上一步操作 ⏹添加或删除…

【打工日常】使用docker部署个人实时在线文档协助编辑器

一、Etherpad介绍 Etherpad是一个高度可定制的开源在线编辑器&#xff0c;提供真正实时的协作编辑。放在自己的服务器里面&#xff0c;可以更大程度的保护自己工作的隐私&#xff0c;并且Etherpad允许您实时协作编辑文档&#xff0c;就像在浏览器中运行的实时多人编辑器一样这样…

接口自动化测试从入门到高级实战!

接口测试背景和必要性 接口测试是测试系统组件间接口&#xff08;API&#xff09;的一种测试&#xff0c;主要用于检测内部与外部系统、内部子系统之间的交互质量&#xff0c;其测试重点是检查数据交换、传递的准确性&#xff0c;控制和交互管理过程&#xff0c;以及系统间相互…

grafana table合并查询

注&#xff1a;本文基于Grafana v9.2.8编写 1 问题 默认情况下table展示的是一个查询返回的多个field&#xff0c;但是我想要的数据在不同的metric上&#xff0c;比如我需要显示某个pod的读写IO&#xff0c;但是读和写这两个指标存在于两个不同的metirc&#xff0c;需要分别查…

Excel 快速填充/输入内容

目录 一. Ctrl D/R 向下/右填充二. 批量输入内容 一. Ctrl D/R 向下/右填充 ⏹如下图所示&#xff0c;通过快捷键向下和向右填充数据 &#x1f914;当选中第一个单元格之后&#xff0c;可以按住Shift后&#xff0c;再选中最后一个单元格&#xff0c;可以选中第一个单元格和最…

【决策树】预测用户用电量

决策树预测用户用电量 文章目录 决策树预测用户用电量  &#x1f449;引言&#x1f48e;一、 数据预处理数据预处理初步数据分析 二、 机器学习算法决策树回归预测用电量决策树模型介绍&#xff1a;回归预测 三、 可视化结果四、 数据分析与结论代码如下 &#x1f449;引言&a…

日期问题---算法精讲

前言 今天讲讲日期问题&#xff0c;所谓日期问题&#xff0c;在蓝桥杯中出现众多&#xff0c;但是解法比较固定。 一般有判断日期合法性&#xff0c;判断是否闰年&#xff0c;判断日期的特殊形式&#xff08;回文或abababab型等&#xff09; 目录 例题 题2 题三 总结 …