R语言-有负下标里才能有零介绍

1、只有负下标里才能有零

先看一个例子

>a<-c(1,2,3,4)
>a[-1:1]
> a[-1:1]

Error in a[-1:1] : 只有负下标里才能有零

(1)只有负下标里才能有零,在这里的意思为:

a[-1:0] 可行

a[0:4]也可行

a[-1:1]不可行

也就是说要么是负索引到0,或者0到正索引,但不能同时出现正负索引。

(2)a[0]结果为numberic(0),结果没有意义,如

> a[0]+10.9
numeric(0)
> a[1]+10.9
[1] 11.9

索引为0,不会得到正确的结果,但不会报错。

2、容易混淆的例子

>a<-c(1,2,3,4)
>a[2:length(a)-1]

结果是什么?是2,3吗?

结果是:1,2,3

> a[2:length(a)-1]
[1] 1 2 3

这是为什么呢,不是取2到长度减1个,也就是2,3吗?

2.1 分析

(1)length(a)值为4

(2)2:length(a)真实含义为2:4

(3)2:4为一个向量,而不是一个简单的标记,实际上表示2,3,4

(4)2:length(a)-1,真实含义为向量c(2,3,4)-1,结果为1,2,3

(5)故最后结果等同于

> a[c(1,2,3)]
[1] 1 2 3

即通过一个向量索引c(1,2,3),取向量a中的值。

2.2 改正

其实要达到期望的效果,正确的式子应为:

a[2:(length(a)-1)]

冒号后段要加上括号才对。如果不加括号,则变成了一个向量减去1。加上括号后才表示取除第1个和最后一个元素的向量。

补充:R语言笔记(有关向量的创建和下标索引)

如下所示:

1、R语言的下标索引是从1开始的

且下标索引为负数的话表示删除某个元素

 > (x<-seq(from=10,to=20,by=1))
 [1] 10 11 12 13 14 15 16 17 18 19 20
> x[-1]
 [1] 11 12 13 14 15 16 17 18 19 20
> x[c(-1,-2,-3)]
[1] 13 14 15 16 17 18 19 20
> 

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。如有错误或未考虑完全的地方,望不吝赐教。

(0)

相关推荐

  • 基于R语言赋值符号的区别说明

    R语言赋值可以用=或<-,一般都建议使用<-,那你知道这两个之间的区间吗?那你有没有见过'<-'和'='这种赋值方法吗?今天就来和大家聊聊这基本的赋值符号都有哪些区别. 首先我们来看看符号的优先级,和java,c这些编程语言的优先级类似.下面这些都取自R帮助文档,输入?Syntax即可查看,它是根据优先级从高到低排列的. :: ::: access variables in a namespace $ @ component / slot extraction [ [[ indexing

  • 在R语言中实现Logistic逻辑回归的操作

    逻辑回归是拟合回归曲线的方法,当y是分类变量时,y = f(x).典型的使用这种模式被预测Ÿ给定一组预测的X.预测因子可以是连续的,分类的或两者的混合. R中的逻辑回归实现 R可以很容易地拟合逻辑回归模型.要调用的函数是glm(),拟合过程与线性回归中使用的过程没有太大差别.在这篇文章中,我将拟合一个二元逻辑回归模型并解释每一步. 数据集 我们将研究泰坦尼克号数据集.这个数据集有不同版本可以在线免费获得,但我建议使用Kaggle提供的数据集. 目标是预测生存(如果乘客幸存,则为1,否则为0)基于

  • R语言-summary()函数的用法解读

    summary():获取描述性统计量,可以提供最小值.最大值.四分位数和数值型变量的均值,以及因子向量和逻辑型向量的频数统计等. 结果解读如下: 1. 调用:Call lm(formula = DstValue ~ Month + RecentVal1 + RecentVal4 + RecentVal6 + RecentVal8 + RecentVal12, data = trainData) 当创建模型时,以上代码表明lm是如何被调用的. 2. 残差统计量:Residuals Min 1Q M

  • R语言中c()函数与paste()函数的区别说明

    c()函数:将括号中的元素连接起来,并不创建向量 paste()函数:连接括号中的元素 例如 c(1, 2:4),结果为1 2 3 4 paste(1, 2:4),结果为"1 2" "1 3" "1 4" c(2, "and"),结果为"2" "and" paste(2, "and"),结果为"2 and" 补充:R语言中paste函数的参数sep

  • R语言中cut()函数的用法说明

    R语言cut()函数使用 cut()切割将x的范围划分为时间间隔,并根据其所处的时间间隔对x中的值进行编码. 参数:breaks:两个或更多个唯一切割点或单个数字(大于或等于2)的数字向量,给出x被切割的间隔的个数. breaks采用fivenum():返回五个数据:最小值.下四分位数.中位数.上四分位数.最大值. labels为区间数,打标签 ordered_result 逻辑结果应该是一个有序的因素吗? 先用fivenum求出5个数,再用labels为每两个数之间,贴标签,采用(]的区间,

  • R语言向量下标操作

    向量下标即元素在向量中的位置,在实践中我们可以利用下标(元素的位置)来找出自己想要的数. 利用runif函数生成包含10个正整数的向量x. options(digits = 1) set.seed(1234) x <- runif(10,min = 1,max = 20) x [1] 3 13 13 13 17 13 1 5 14 11 正整数下标 我们可以输入正整数作为下标来找出对应位置的元素. 在[]内输入下标. #向量x的第一位置的元素 x[1] [1] 3 #向量x的第2位置的元素 x[

  • R语言通过parallel包实现多线程运行方式

    总的来说,R的运算速度不算快,不过类似并行运算之类的改进可以提高运算的性能.下面非常简要地介绍如何利用R语言进行并行运算 library(parallel) cl.cores <- detectCores() cl <- makeCluster(cl.cores) detectCores( )检查当前电脑可用核数. makeCluster(cl.cores)使用刚才检测的核并行运算.R-Doc里这样描述makeCluster函数:Creates a set of copies of R run

  • R语言多线程运算操作(解决R循环慢的问题)

    已经大半年没有更新博客了..最近都跑去写分析报告半年没有R 这次记录下关于R循环(百万级以上)死慢死慢的问题,这个问题去年就碰到过,当时也尝试过多线程,but failed......昨天试了下,终于跑通了,而且过程还挺顺利 step1 先查下自己电脑几核的,n核貌似应该选跑n个线程,线程不是越多越好,线程个数和任务运行时间是条开口向下的抛物线,最高点预计在电脑的核数上. detectCores( )检查当前电脑可用核数 我的是4所以step2选的是4 library(parallel) cl.

  • R语言-有负下标里才能有零介绍

    1.只有负下标里才能有零 先看一个例子 >a<-c(1,2,3,4) >a[-1:1] > a[-1:1] Error in a[-1:1] : 只有负下标里才能有零 (1)只有负下标里才能有零,在这里的意思为: a[-1:0] 可行 a[0:4]也可行 a[-1:1]不可行 也就是说要么是负索引到0,或者0到正索引,但不能同时出现正负索引. (2)a[0]结果为numberic(0),结果没有意义,如 > a[0]+10.9 numeric(0) > a[1]+10.

  • R语言-生成频数表和列联表crosstable函数介绍

    列联表crosstable 列联表不仅可以用来做简单的描述性统计,还可以在机器学习中用来比较识别正确率,FPR,TPR等等数据,以便我们比较不同的ML模型 or 调参. 2x2列联表一般长下面这样: Total Observations in Table: 143 | test_cancer$diagnosis lda.class | 0 | 1 | Row Total | -------------|-----------|-----------|-----------| 0 | 82 | 1

  • R语言数据类型深入详解

    R语言用来存储数据的对象包括: 向量, 因子, 数组, 矩阵, 数据框, 时间序列(ts)以及列表 意义介绍 1. 向量(一维数据): 只能存放同一类型的数据 语法: c(data1, data2, ...),访问的时候下标从1开始(和Matlab相同);向量里面只能存放相同类型的数据. > x <- c(1,5,8,9,1,2,5) > x [1] 1 5 8 9 1 2 5 > y <- c(1,"zhao") # 这里面有integer和字符串, 整

  • R语言实现二进制文件读写操作

    二进制文件是一个文件,其中包含仅以位和字节形式存储的信息(0和1),它们是不可读的,因为其中的字节转换为包含许多其他不可打印字符的字符和符号,随便我们尝试使用任何文本编辑器读取二进制文件将显示为类似Ø和ð这样的字符. 但是二进制文件必须由特定程序读取才能使用.例如,Microsoft Word程序的二进制文件只能通过Word程序读取到人类可读的形式.这表明,除了人类可读的文本之外,还有更多的信息,如格式化的字符和页码等,它们也与字母数字字符一起存储.最后,二进制文件是一个连续的字节序列. 我们在

  • R语言基本语法深入讲解

    基本数据类型 数据类型 向量 vector 矩阵 matrix 数组 array 数据框 data frame 因子 factor 列表 list 向量 单个数值(标量)没有单独的数据类型,它只不过是向量的一种特例 向量的元素必须属于某种模式(mode),可以整型(integer).数值型(numeric).字符型(character).逻辑型(logical).复数型(complex) 循环补齐(recycle):在一定情况下自动延长向量 筛选:提取向量子集 向量化:对向量的每一个元素应用函数

  • R语言数据建模流程分析

    目录 Intro 项目背景 前期准备 数据描述 数据清洗 预分析及预处理 数值型数据 类别型数据 特征 Boruta算法 建模 模型对比 Intro 近期在整理数据分析流程,找到了之前写的一篇代码,分享给大家.这是我上学时候做的一个项目,当时由于经验不足产生了一些问题,这些问题会在之后一点一点给大家讨论,避免各位踩坑.本篇分享会带一些讲解,可能有些地方不够清楚,欢迎留言讨论. 本次除了分享之外也是对自己之前项目的一个复盘.还是使用R语言(毕竟是我钟爱的语言).Python的如果有需求之后会放别的

  • R语言因子类型的实现

    目录 1.因子 2.table()函数 3.tapply()函数 4.forcats包的因子函数 1.因子 R 中用因子代表数据中分类变量 , 如性别.省份.职业.有序因子代表有序量度,如打分结果,疾病严重程度等. 用 factor() 函数把字符型向量转换成因子,如 x <- c(" 男", " 女", " 男", " 男", " 女") sex <- factor(x) sex 返回: at

  • R语言日期时间的使用

    目录 1.日期和日期时间类型 2.从字符串生成日期数据 3.日期显示格式 4.访问日期时间的组成值 5.日期舍入计算 6.日期计算 6.1 时间长度 6.2 时间周期 6.3 时间区间 7.基本R软件的日期功能 7.1 生成日期和日期时间型数据 7.2 取出日期时间的组成值 7.3  日期计算 练习 1.日期和日期时间类型 R 中日期可以保存为 Date 类型,一般用整数保存,数值为从 1970-1-1 经过的天数. R 中用一种叫做 POSIXct 和 POSIXlt 的特殊数据类型保存日期和

  • R语言如何实现多元线性回归

    R小白几天的摸索 红色为输入,蓝色为输出 输入数据 先把数据用excel保存为csv格式放在"我的文档"文件夹 打开R软件,不用新建,直接写 回归计算 求三个平方和 置信区间(95%) 散点图(最显著的因变量) 拟合图 一元线性回归 结果:(看图) 变量系数  Estimate 变量系数标准误  Std. Error T检验值  t value T检验p值  Pr(>|t|) 均方根误差  Residual standard error 判定系数  R-squared 调整判定系

  • R语言利用plot()函数画图的基本用法

    plot()函数在R语言画图中位置十分重要,现在就对其具体用法做一个总结. 基本用法: plot(x=x轴数据,y=y轴数据,main="标题",sub="子标题",type="线型",xlab="x轴名称",ylab="y轴名称",xlim = c(x轴范围,x轴范围),ylim = c(y轴范围,y轴范围)) 示例代码为: plot(c(1:6),c(1:6),main="test"

随机推荐