r语言向量代码如何创建函数c,R中向量基本操作:创建、运算、访问

本文含有:

向量的创建与运算

两个方便创建向量的函数:rep()与seq()

如何访问向量中的元素

首先先明白几个要点:

R区分大小写,向量A和向量a是两个不同的向量;

R可以识别负数,如5+-2可以输出结果3

R是计数时是1-base,也就是说R中的1就代表第一个数,而其他语言有可能第一个数用0来表示。

R的赋值符号可以是“

1. 向量的创建与运算

创建一个向量

> l

> l

[1] 2 2 1 3 8

创建一个1至5的向量,“:”表示“至”,“1:5”则表示从1到5的5个整数。

> n

> n

[1] 1 2 3 4 5

也可以用函数vector(length=)创建向量。创建的向量初始默认为逻辑值FALSE

> v

> v

[1] FALSE FALSE FALSE FALSE

切片运算(这也是访问向量的一种方式)

注意R中的序号1就表示第1个,而不是2个,要与python相区别

n[1:4]

[1] 1 2 3 4

基本运算

首先肯定是用+, -, *, /这几个运算符号进行的。幂运算使用^,带括号先算括号内的内容。用刚刚创建的n和a列表进行示范:

> a1

> a1

[1] 3 4 4 7 13

> a2

> a2

[1] 2.0000000 1.0000000 0.3333333 0.7500000 1.6000000

a和n是等长的,即向量内元素的个数是一样的,得到的运算结果也是一一对应相运算的结果。若不等长会怎么样呢?

较少元素的向量在运算完一遍以后将会重新对应较多元素的向量中的剩余元素逐个再从头运算一次。这句话比较难理解,看例子:

> n

> l

> a

> a

[1] 1 2 3 4 5 2 4 6 8 10

2.seq函数 - 建立等差数列

建立从2到10,间隔为2的等差数列:

> n

> n

[1] 2 4 6 8 10

如果换成1到11,间隔为2的等差数列会怎么样呢?答案是11会被剔除。

> n

> n

[1] 2 4 6 8 10

3. rep函数 - 元素的重复

两种格式:

rep(起始值:终止值, times = 重复次数)

rep(起始值:终止值, each = 重复次数)

第一种是将整一个向量重复n次;

第二种是将向量的每个元素依次重复n次;

若直接写数字,则是第一种times.

见下面例子:

> x=1:4

> rep(x,2)

[1] 1 2 3 4 1 2 3 4

第一行代码表示把1到4赋值给x,第二行表示把向量x重复2次。当然我们也可以直接写入数字:

> rep(1:4,2)

[1] 1 2 3 4 1 2 3 4

当然,向量可以重复,字符也是可以重复的,但是不要忘记加个引号,例如,如果我们想把字符“male”和“female”各重复10次,那么我们输入下面的代码:

> rep(c("male","female"),each=10)

[1] "male" "male" "male" "male" "male" "male" "male" "male"

[9] "male" "male" "female" "female" "female" "female" "female" "female"

[17] "female" "female" "female" "female"

先用c()函数将“male”和“female”结合成一个向量,each=10是将向量中每一个元素重复10次。如果不写each=10,直接写10,将会是这样的:

> rep(c("male","female"),10)

[1] "male" "female" "male" "female" "male" "female" "male" "female"

[9] "male" "female" "male" "female" "male" "female" "male" "female"

[17] "male" "female" "male" "female"

注意它和前一个代码重复的区别。再强调一次,第一个是将向量中的每一个元素重复十次,第二个是将整个向量重复了10次。

> rep(c(1,2),c(10,10))

[1] 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2

这样写也表示把1,2各重复10次。因此,我们显然可以想到,如果把1,2,3,4分别重复5,6,7,8次,代码一定是这样的:

> rep(c(1,2,3,4),c(5,6,7,8))

[1] 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4

与seq函数一样,rep函数也可以设置长度。

> rep(1:7,3)

[1] 1 2 3 4 5 6 7 1 2 3 4 5 6 7 1 2 3 4 5 6 7

> rep(1:7,3,length.out=18)

[1] 1 2 3 4 5 6 7 1 2 3 4 5 6 7 1 2 3 4

比较这两组代码与结果。第一个表示将1到7重复3次,得出了21个值,第二个表示将1到7重复3次,限制长度为18,所以结果只有18个值。同样,length.out也可以简写为length或len。

当我们在rep中使用each时,还可以使用times:

> rep(c(3,5,7),each=3,times=2)

[1] 3 3 3 5 5 5 7 7 7 3 3 3 5 5 5 7 7 7

代码表示将向量中的每个元素重复三次,再将所得的结果重复2次(结合结果,仔细理解我这句话),“times”即“加倍”的意思。

最后想删除向量x:

rm(x)

4.访问向量中的元素

(1)访问指定位置上的元素

有三种书写格式:

向量名[位置常量]

向量名[位置常量1:位置常量2]

向量名[c(位置常量列表)]

> v

> v

[1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE

> v[1]

> v[2:4]

> v

[1] 1 2 3 4 0 0 0 0 0 0

> w

> v[c(5:9,10)]

> v

[1] 1 2 3 4 5 6 7 8 9 10

这个c(w, 10)的访问方式,可以有效实现多个向量的合并。

(2)利用位置向量访问指定位置上的元素

> v

[1] 1 2 3 4 5 6 7 8 9 10

> w

> v[w]

[1] 2 3 4

要注意这个w的赋值没有用c函数。

除了直接指定位置,也可以利用逻辑型位置向量来访问。

> w

> v[w] # 访问v中位置向量w取值为TRUE位置(即1,4)上的元素

[1] 1 4

(3)访问指定位置之外的元素

加个负号就可以实现

> v[-1] # 访问除了第1个元素以外的元素

[1] 2 3 4 5 6 7 8 9 10

> v[-(2:4)] # 访问除了2~4元素以外的元素

[1] 1 5 6 7 8 9 10

> v[-c(5:9,10)]

[1] 1 2 3 4

如果尝试逻辑型位置向量呢?会出现问题:

> w

[1] TRUE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE

> v[-w]

[1] 2 3 4 5 6 7 8 9 10

本文参考:《R语言数据挖掘》第2版 薛薇 编著

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
R语言经典实例(+英) 第1章 R入门和获得帮助 7   1.1 下载和安装R软件 8   1.2 开始运行R软件 10   1.3 输入R命令 13   1.4 退出R 15   1.5 断R正在运行的程序 16   1.6 查看帮助文档 17   1.7 获取函数的帮助文档 18   1.8 搜索帮助文档 20   1.9 查看R软件包帮助信息 21   1.10 通过网络获取帮助 23   1.11 寻找相关函数与数据包 26   1.12 查询邮件列表 27   1.13 向邮件列表提交问题 27   第2章 基础知识 30   2.1 显示内容 30   2.2 设定变量 32   2.3 列出所有变量 34   2.4 删除变量 35   2.5 生成向量 36   2.6 计算基本统计量 37   2.7 生成数列 40   2.8 向量比较 42   2.9 选取向量的元素 43   2.10 向量的计算 46   2.11 运算符优先级问题 48   2.12 定义函数 50   2.13 减少输入,得到更多命令 52   2.14 常见错误 54   第3章 R软件导览 58   3.1 获取和设定工作目录 58   3.2 保存工作空间 59   3.3 查看历史命令记录 60   3.4 保存先前命令产生的结果 60   3.5 显示搜索路径 61   3.6 使用R包函数 62   3.7 使用R的内置数据集 64   3.8 查看已安装的R包列表 65   3.9 从CRAN网站安装R包 67   3.10 设定默认CRAN网站镜像 69   3.11 隐藏启动信息 70   3.12 运行脚本 70   3.13 批量运行R代码 71   3.14 获取和设定环境变量 74   3.15 找到R的主目录 75   3.16 R的客户化 76   第4章 输入与输出 80   4.1 使用键盘输入数据 81   4.2 显示更少的位数(或更多的位数) 82   4.3 将输出结果重定向到某一文件 84   4.4 显示文件列表 85   4.5 解决无法在Windows打开文件的问题 86   4.6 阅读固定宽度数据记录 87   4.7 读取表格数据文件 88   4.8 读取CSV文件 90   4.9 写入CSV文件 92   4.10 从网络读取表格或CSV格式数据 93   4.11 读取HTML表格数据 94   4.12 读取复杂格式数据文件 96   4.13 读取MySQL数据库的数据 100   4.14 保存和传送目标 102   第5章 数据结构 104   5.1 对向量添加数据 111   5.2 在向量插入数据 112   5.3 理解循环规则 113   5.4 构建因子(即分类变量) 115   5.5 将多个向量合并成单个向量以及平行因子 117   5.6 创建列表 118   5.7 根据位置选定列表元素 119   5.8 根据名称选定列表元素 121   5.9 构建一个名称/值关联表 122   5.10 从列表移除元素 124   5.11 将列表转换为向量 125   5.12 从列表移除取值为空值(即NULL)的元素 126   5.13 使用条件来移除列表元素 127   5.14 矩阵初始化 129   5.15 执行矩阵运算 130   5.16 将描述性名称赋给矩阵的行和列 131   5.17 从矩阵选定一行或一列 132   5.18 用列数据初始化数据框 133   5.19 由行数据初始化数据框 134   5.20 添加行至数据框 136   5.21 预分配数据框 137   5.22 根据位置选择数据框的列 138   5.23 根据列名选定数据框的列 142   5.24 更便捷地选定行和列 143   5.25 修改数据框的列名 145   5.26 编辑数据框 146   5.27 从数据框移除NA值 148   5.28 根据名称排除列 149   5.29 合并两个数据框 150   5.30 根据共有列合并数据框 151   5.31 更便捷地访问数据框内容 152   5.32 基本数据类型之间的转换 154   5.33 不同结构化数据类型间的转换 156   第6章 数据转换 159   6.1 向量分组 160   6.2 将函数应用于每个列表元素 161   6.3 将函数应用于每行 163   6.4 将函数应用于每列 164   6.5 将函数应用于组数据 166   6.6 将函数应用于行组 168   6.7 将函数应用于平行向量或列表 170   第7章 字符串和日期 172   7.1 获取字符串长度 174   7.2 连接字符串 175   7.3 提取子串 176   7.4 根据分隔符分割字符串 176   7.5 替代子串 178   7.6 查看字符串的特殊字符 179   7.7 生成字符串的所有成对组合 179   7.8 得到当前日期 181   7.9 转换字符串为日期 181   7.10 转换日期为字符串 182   7.11 转化年、月、日为日期 183   7.12 得到儒略日期 185   7.13 提取日期的一部分 185   7.14 创建日期序列 187   第8章 概率 189   8.1 计算组合数 191   8.2 生成组合 192   8.3 生成随机数 193   8.4 生成可再生的随机数 194   8.5 生成随机样本 196   8.6 生成随机序列 197   8.7 随机排列向量 198   8.8 计算离散分布的概率 198   8.9 计算连续分布的概率 200   8.10 转换概率为分位数 201   8.11 绘制密度函数 203   第9章 统计概论 206   9.1 汇总数据 208   9.2 计算相对频数 210   9.3 因子制表和列联表创建 211   9.4 检验分类变量独立性 212   9.5 计算数据集的分位数(和四分位数) 212   9.6 求分位数的逆 213   9.7 数据转换为z分数 214   9.8 检验样本均值(t检验) 215   9.9 均值的置信区间 216   9.10 位数的置信区间 217   9.11 检验样本比例 218   9.12 比例的置信区间 219   9.13 检验正态性 220   9.14 游程检验 222   9.15 比较两个样本的均值 223   9.16 比较两个非参数样本的位置 225   9.17 检验相关系数的显著性 226   9.18 检验组的等比例 228   9.19 组均值间成对比较 229   9.20 检验两样本的相同分布 230   第10章 图形 232   10.1 创建散点图 234   10.2 添加标题和标签 236   10.3 添加网格 237   10.4 创建多组散点图 238   10.5 添加图例 240   10.6 绘制散点图的回归线 242   10.7 多变量散点图的绘制 243   10.8 创建每个因子水平的散点图 244   10.9 创建条形图 246   10.10 对条形图添加置信区间 248   10.11 给条形图上色 249   10.12 绘制过点x和y的线 251   10.13 改变线的类型、宽度或者颜色 253   10.14 绘制多个数据集 254   10.15 添加垂直线和水平线 256   10.16 创建箱线图 257   10.17 对每个因子水平创建箱线图 258   10.18 创建直方图 259   10.19 对直方图添加密度估计 261   10.20 创建离散直方图 262   10.21 创建正态Q-Q图 264   10.22 创建其他Q-Q图 265   10.23 用多种颜色绘制变量 266   10.24 绘制函数 269   10.25 图形间暂停 270   10.26 在一页显示多个图形 271   10.27 打开另一个图形窗口 273   10.28 在文档绘制图形 274   10.29 改变图形参数 275   第11章 线性回归和方差分析 277   11.1 简单线性回归 279   11.2 多元线性回归 281   11.3 得到回归统计量 282   11.4 理解回归的汇总结果 286   11.5 运行无截距的线性回归 289   11.6 运行有交户项的线性回归 290   11.7 选择最合适的回归变量 292   11.8 对数据子集回归 295   11.9 在回归公式使用表达式 296   11.10 多项式回归 298   11.11 转换数据的回归 299   11.12 寻找最佳幂变换 301   11.13 回归系数的置信区间 304   11.14 绘制回归残差 304   11.15 诊断线性回归 306   11.16 识别有影响的观察值 309   11.17 残差自相关检验 310   11.18 预测新值 311   11.19 建立预测区间 312   11.20 运行单因素方差分析 313   11.21 创建交互关系图 315   11.22 找到组间均值的不同 316   11.23 执行稳健方差分析 318   11.24 运用方差分析比较模型 320   第12章 有用的方法 323   12.1 查看你的数据 323   12.2 拓宽你的输出 324   12.3 输出赋值结果 325   12.4 对行和列求和 325   12.5 按列输出数据 326   12.6 对数据分级 328   12.7 找到特定值的位置 329   12.8 每隔n个选定一个向量元素 330   12.9 找到成对的最小值或者最大值 331   12.10 生成多个因子的组合 332   12.11 转换一个数据框 333   12.12 对数据框排序 334   12.13 对两列排序 335   12.14 移除变量属性 336   12.15 显示对象的结构 337   12.16 代码运行时间 340   12.17 抑制警告和错误消息 341   12.18 从列表提取函数参数 342   12.19 定义你自己的二元运算符 344   第13章 高级数值分析和统计方法 347   13.1 最小化或者最大化一个单参数函数 347   13.2 最小化或者最大化多参数函数 348   13.3 计算特征值和特征向量 350   13.4 主成分分析 351   13.5 简单正交回归 352   13.6 数据的聚类 354   13.7 预测二元变量(逻辑回归) 357   13.8 统计量的自助法 359   13.9 因子分析 361   第14章 时间序列分析 366   14.1 表示时间序列 367   14.2 绘制时序图 370   14.3 提取最老的观测值或者最新的观测值 373   14.4 选取时间序列的子集 374   14.5 合并多个时间序列 376   14.6 缺失时间序列的填充 378   14.7 时间序列的滞后 380   14.8 计算逐次差分 381   14.9 时间序列相关的计算 382   14.10 计算移动平均 383   14.11 在日历时间范围内应用函数 384   14.12 应用滚动函数 386   14.13 绘制自相关函数图 388   14.14 检验时间序列的自相关 389   14.15 绘制偏自相关函数 390   14.16 两个时间序列间的滞后相关性 391   14.17 剔除时间序列的趋势 393   14.18 拟合ARIMA模型 394   14.19 剔除ARIMA模型不显著的系数 397   14.20 对ARIMA模型进行诊断 399   14.21 用ARIMA模型进行预测 400   14.22 均值回归的检验 402   14.23 时间序列的平滑 404
【优质项目推荐】 1、项目代码均经过严格本地测试,运行OK,确保功能稳定后才上传平台。可放心下载并立即投入使用,若遇到任何使用问题,随时欢迎私信反馈与沟通,博主会第一时间回复。 2、项目适用于计算机相关专业(如计科、信息安全、数据科学、人工智能、通信、物联网、自动化、电子信息等)的在校学生、专业教师,或企业员工,小白入门等都适用。 3、该项目不仅具有很高的学习借鉴价值,对于初学者来说,也是入门进阶的绝佳选择;当然也可以直接用于 毕设、课设、期末大作业或项目初期立项演示等。 3、开放创新:如果您有一定基础,且热爱探索钻研,可以在此代码基础上二次开发,进行修改、扩展,创造出属于自己的独特应用。 欢迎下载使用优质资源!欢迎借鉴使用,并欢迎学习交流,共同探索编程的无穷魅力! 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值