方法apply作用于对象sort时失败_R语言 第2章 数据对象与数据读写(2)

本文介绍了R语言中查看对象类型的函数class()、mode()、typeof(),并详细讲解了apply家族函数的应用,如apply、lapply、sapply、mapply和tapply。此外,还探讨了向量的创建、索引、编辑和排序,以及数据结构的基础知识,适合R语言初学者阅读。
摘要由CSDN通过智能技术生成

查看对象的类型

      对于未知类型的对象,在R中有3个函数可以查看对象的类型:class()、mode()、typeof()。

使用格式:class(x)

       其中x为需要查看类型的对象,mode()、typeof()函数使用格式与class()函数相同。

实例:创建3个不同类型的数据,展示3个辨别函数的区别。

       在展现数据的细节上,mode()

mode只查看数据的大类

class()查看数据的类

typedef()函数则更加细化,查看数据的细类

stringsAsFactorsl:logical: should character vectors be converted to factors? The ‘factory-fresh’ default is TRUE, but this can be changed by setting options(stringsAsFactors = FALSE).

     R语言提供了批量处理函数,可以循环遍历某个集合内的所有或部分元素,以简化操作。

      这些函数底层是通过C来实现的,所以效率也比手工遍历来的高效。

批量处理函数有很重要的apply族函数:lapply sapply apply tapply mapply。

apply族函数是高效能计算的运算向量化(Vectorization)实现方法之一,比起传统的for,while常常能获得更好的性能。

apply : 用于遍历数组中的行或列,并且使用指定函数来对其元素进行处理。

lapply : 遍历列表向量内的每个元素,并且使用指定函数来对其元素进行处理。返回列表向量。

sapply : 与lapply基本相同,只是对返回结果进行了简化,返回的是普通的向量。

mapply: 支持传入两个以上的列表。

tapply: 接入参数INDEX,对数据分组进行运算,就和SQL中的by group一样。

df sapply(df, mode)c1 c2 c3“character” “numeric” “numeric”sapply(df, class)c1 c2 c3“character” “integer” “numeric”sapply(df, typeof)c1 c2 c3“character” “integer” “double”
454ea02af158043bcedae12a6abc55ec.png

2.数据结构

向量创建       向量是以一维数组的方法管理数据的一种对象类型。可以说向量是R语言中最基本的数据类型,很多算法函数都是以向量的形式输入的。       向量可以是数值型、字符型、逻辑值型(T、F) 和复数型。       向量可以使用执行组合功能c( )函数实例:创建不同类型的向量

  > x1   > x2   > x3 

       一个向量的所有元素都必须属于相同的类型。如果不是,R将强制执行类型转换。

向量索引

        通常,我们只要访问向量中的部分或个别元素。这就是所谓的索引,它用方括号[] 来实现。(有人也称之为子集、下标或切片,这些术语所指相同。)

R语言中,提供如下多种索引方法。

        给向量传入正数,它会返回此位置上的向量元素切片。它的第一个位置是 1( 而不像其他某些语言一样是0) 。

        给向量传入负数,它会返回一个向量切片,它将包含除了这些位置以外的所有元素。

       给向量传入负数,它会返回一个向量切片,它将包含除了这些位置以外的所有元素。

       给向量传入一个逻辑向量,它会返回一个向量切片,里面只包含索引为 TRUE 的元素。

      对于已命名的向量,给向量传入命名的字符向量,将会返回向量中包含这些名字的元素切片。

aa[-1][1] 2 3 4 5a[-2][1] 1 3 4 5
a[TRUE][1] 1 2 3 4 5

索引向量
以下三个索引方法都将返回相同的值:

424e2af135a467e42ccd37cce9a371c8.png如果给每个元素命名,以下方法也将返回相同的值:

f7887e829313ad157b4dfcfa08564c58.png混合使用正负值是不允许的,会抛出一个错误:

bcf5b250ce1f06c1bf0f9c9035a588a6.png索引向量
which函数将返回逻辑向量中为TRUE的位置

7ac8b8bb3d85a701a05fbc89e5463401.png

which.min 和which.max 分别是which(min(x)) 和which(max(x)) 的简写:

fa7397920ab8e6e8c5a1eaf926173335.png

which(x>4.0) 或 x[x>4.0]向量编辑      R语言可以对已经创建好的向量直接进行元素扩展及删除等编辑操作。      向量中元素的删除通过减号加元素下标的形式实现。

实例:向量元素的扩展及删除  > # 向量编辑  > x   > # 向量扩展  > (x   [1] 1 2 3 4 5 6 7      > # 单个元素的删除  > (x   [1] 2 3 4 5 6 7  > # 多个元素的删除  > (x   [1] 4 5 6

向量排序       sort()函数为R语言中对向量进行排序的常用函数。此外,rev()函数可以将向量倒序放置。        使用格式:sort(x, decreasing = FALSE, na.last = NA, …)         na.last为默认设置时,将缺失值省略。sort()函数常用参数

07b077d8acf39397fe7f7a6bd062817d.png

实例:向量的排序及倒序   ##向量排序   #创建3个无序的向量    >x    >x1    >x2    #数值型数据排序(默认顺序为升序)    >sort(x , decreasing=FALSE)    [1] 1 4 5 6 7 8 9    >sort(x, decreasing=TRUE)      [1] 9 8 7 6 5 4 1    #字符型数据排序     >sort(x1)     [1] “A””B””C”     #将缺失值(NA)放置到序列最末尾     >sort(x2,na.last=TRUE)      [1] 1 2 3 4 5 NA      #倒序     >rev(x)       [1] 4 9 1 7 8 6 5
等差序列的创建seq( )产生等距间隔的数列,其基本形式为:     seq(from = 1,  to = 1,  by = ((to - from) / (length.out - 1)),  length.out = NULL,  along.with = NULL, ...)     X1.1,aq(along.with=x)[1,2,3,4]
29ad0979986f9e5d504a8c199dd27b29.gif

●句子

●编程学习

●大学生生活图鉴

●JavaScript

●计算机网络原理

●计算机组成原理

●操作系统

●数据库系统概论

●数据结构

●英语

●R语言

●Linux

●人生哲学以及电竞

●云计算与人工智能

●新媒体运营以及各种资源分享

●明星电视剧社会现象娱乐

c90efe4a4f4048cd8aa8b7cdd27151f6.png 0f755b7fd27ec06df528560137f920e0.png 5e0b6bf34043b451b9b96b25665f8779.png 3f3a3180eb3f0f8a6052041f9c837bf0.gif仙女都在看点点点,赞和在看都在这儿! d2c6a16f007f9c1fadadc51a53a291f2.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值