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

往期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   20cumsum(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   20mat_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 daysdifftime(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.rhkb.cn/news/272651.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

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

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

codeforcesABC

A A. Marathon time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output DeepL 翻译  A.马拉松 每次测试的时间限制&#xff1a;1 秒 每次测试的内存限制&#xff1a;256 兆字节 输入&#xff1a…

简单认识Linux

今天带大家简单认识一下Linux&#xff0c;它和我们日常用的Windows有什么不同呢&#xff1f; Linux介绍 Linux内核&发行版 Linux内核版本 内核(kernel)是系统的心脏&#xff0c;是运行程序和管理像磁盘和打印机等硬件设备的核心程序&#xff0c;它提供了一个在裸设备与…

Nginx配置文件的整体结构

一、Nginx配置文件的整体结构 从图中可以看出主要包含以下几大部分内容&#xff1a; 1. 全局块 该部分配置主要影响Nginx全局&#xff0c;通常包括下面几个部分&#xff1a; 配置运行Nginx服务器用户&#xff08;组&#xff09; worker process数 Nginx进程PID存放路径 错误…

Normalizer(归一化)和MinMaxScaler(最小-最大标准化)的区别详解

1.Normalizer&#xff08;归一化&#xff09;&#xff08;更加推荐使用&#xff09; 优点&#xff1a;将每个样本向量的欧几里德长度缩放为1&#xff0c;适用于计算样本之间的相似性。 缺点&#xff1a;只对每个样本的特征进行缩放&#xff0c;不保留原始数据的分布形状。 公式…

【ubuntu】安装 Anaconda3

目录 一、Anaconda 说明 二、操作记录 2.1 下载安装包 2.1.1 官网下载 2.1.2 镜像下载 2.2 安装 2.2.1 安装必要的依赖包 2.2.2 正式安装 2.2.3 检测是否安装成功 方法一 方法二 方法三 2.3 其他 三、参考资料 3.1 安装资料 3.2 验证是否成功的资料 四、其他 …

STM32---通用定时器(二)相关实验

写在前面&#xff1a;前面我们学习了基本定时器、通用定时器的相关理论部分&#xff0c;了解到通用定时器的结构框图&#xff0c;总共包含六大模块&#xff1a;时钟源、控制器、时基单元、输入捕获、公共部分以及输出捕获。对相关模块的使用也做详细的讲解。本节我们主要是对上…

【HarmonyOS】ArkTS-枚举类型

枚举类型 枚举类型是一种特殊的数据类型&#xff0c;约定变量只能在一组数据范围内选择值 定义枚举类型 定义枚举类型&#xff08;常量列表&#xff09; enum 枚举名 { 常量1 值, 常量2 值,......}enum ThemeColor {Red #ff0f29,Orange #ff7100,Green #30b30e}使用枚举…

读算法的陷阱:超级平台、算法垄断与场景欺骗笔记05_共谋(中)

1. 默许共谋 1.1. 又称寡头价格协调&#xff08;Oligopolistic Price Coordination&#xff09;或有意识的平行行为&#xff08;Conscious Parallelism&#xff09; 1.1.1. 在条件允许的情况下&#xff0c;它会发生在市场集中度较高的行业当中 1.1.…

你还可以通过“nrm”工具,来自由管理“npm”的镜像

你还可以通过“nrm”工具&#xff0c;来自由管理“npm”的镜像 nrm&#xff08;npm registry manager&#xff09;是npm的镜像管理工具&#xff0c;有时候国外的资源太慢&#xff0c;使用这个就可以快速地在npm源间切换。 1.安装nrm 在命令行执行命令&#xff0c;npm install…

如何免费获得一个市全年的气象数据?降雨量气温湿度太阳辐射等等数据

气象数据一直是一个价值较高的数据&#xff0c;它被广泛用于各个领域的研究当中。气象数据包括有气温、气压、相对湿度、降水、蒸发、风向风速、日照等多种指标&#xff0c;但是包含了这些全部指标的气象数据却较难获取&#xff0c;即使获取到了也不能随意分享。 想要大规模爬取…

抽象的java发送邮箱2.0版本

优化了更多细节 SpringBoot3&#xff1a;前置框架 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-jdbc</artifactId></dependency><dependency><groupId>org.springframewo…

【工具】Git的24种常用命令

相关链接 传送门&#xff1a;>>>【工具】Git的介绍与安装<< 1.Git配置邮箱和用户 第一次使用Git软件&#xff0c;需要告诉Git软件你的名称和邮箱&#xff0c;否则无法将文件纳入到版本库中进行版本管理。 原因&#xff1a;多人协作时&#xff0c;不同的用户可…

Python匿名函数有知道的吗?

1.函数 按照函数是否有名字分为有名字的函数和匿名函数 匿名函数&#xff1a;定义函数时&#xff0c;不再使用def关键字声明函数&#xff0c;而是使用lambda表达式 匿名函数在需要执行简单的操作时非常有用&#xff0c;可以减少代码冗余 2.有名字的函数 def fn(n):return …

【Redis知识点总结】(二)——Redis高性能IO模型剖析

Redis知识点总结&#xff08;二&#xff09;——Redis高性能IO模型及其事件驱动框架剖析 IO多路复用传统的阻塞式IO同步非阻塞IOIO多路复用机制 Redis的IO模型Redis的事件驱动框架 IO多路复用 Redis的高性能的秘密&#xff0c;在于它底层使用了IO多路复用这种高性能的网络IO&a…

ARTS Week 20

Algorithm 本周的算法题为 1222. 可以攻击国王的皇后 在一个 下标从 0 开始 的 8 x 8 棋盘上&#xff0c;可能有多个黑皇后和一个白国王。 给你一个二维整数数组 queens&#xff0c;其中 queens[i] [xQueeni, yQueeni] 表示第 i 个黑皇后在棋盘上的位置。还给你一个长度为 2 的…

Linux上安装torch-geometric(pyg)1.7.2踩坑记录

重点&#xff1a;1.一定要在创建虚拟环境的时候设置好python版本。2.一定要先确定使用1.X还是2.X的pyg库&#xff0c;二者不兼容。3.一定要将cuda、torch、pyg之间的版本对应好。所以&#xff0c;先确定pyg版本&#xff0c;再确定torch和cuda的版本。 结论&#xff1a;如果在u…

【兔子机器人】修改GO电机id(软件方法、硬件方法)

一、硬件方法 利用上位机直接修改GO电机的id号&#xff1a; 打开调试助手&#xff0c;点击“调试”&#xff0c;查询电机&#xff0c;修改id号&#xff0c;即可。 但先将四个GO电机连接线拔掉&#xff0c;不然会将连接的电机一并修改。 利用24V电源给GO电机供电。 二、软件方…

UDP与TCP:了解这两种网络协议的不同之处

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

实验二(一):IPV4编址及IPV4路由基础实验

一实验介绍 1.关于本实验 IPv4( Internet Protocol Version 4)是 TCP/IP 协议族中最为核心的协议之一。 它工作在 TCP/IP参考模型的网际互联层&#xff0c;该层与 OSI参考模型的网络层相对应。 网络层提供了无连接数据传输服务&#xff0c;即网络在发送分组时不需要先建立连…