r语言集合补集_R语言使用的一些注意事项

本文介绍了R语言中的一些重要操作和注意事项,包括帮助查询、向量处理、子集提取、矩阵与数组操作、list的动态管理和data frame的创建。特别讨论了集合操作如union、intersect、setdiff和setequal,并提到了factor的level概念及tapply、split函数在数据分组中的应用。
摘要由CSDN通过智能技术生成

不用等号用

获得帮助的三种途径

1) help ? 获得方法的文档解释

2) example 获得方法的样例

3) help.search ?? 模糊搜索,搜寻自己想要的功能,R会返回相关结果

尽管变量的数据类型无需在使用前声明,但在没有声明变量的存储方式之前,直接通过下标的方式对其赋值是会有错误的。比如x[1]

vector会循环。例如,c(1,2,4) + c(2,3,4,5,6) 其中长度略短的c(1,2,4)会“循环”匹配较长的vector长度,被当做c(1,2,4,1,2)来做该加法,因此结果为3 5 8 6 8。

vector的过滤。

1) 对于x=2]返回包涵2、3的vector。

2) 利用subset方法也可以实现过滤,如subset(x,x>5),但与x[x>5]的区别是,subset会剔除NA,而后者则保留。

用args()方法来查看一个函数的参数

x

创建matrix的方式

1) y

2) y

3) m

取子矩阵的几种方式

1) 连续取 z[,2:3]:取z矩阵2、3两列

2) 跳跃取 z[c(1,3),]:取z矩阵1、3两行

3) 剔除取 z[-2,]:剔除z矩阵第2行

apply()方法可以把自定义的function,应用到matrix中的元素上。如果自定义function返回k个元素的vector,那么apply()的结果将包含k行。

通过cbind()和rbind()合并两个vector(matrix)——实际上,所谓“合并”,只是创建了一个新的matrix

从matrix中提取一行或列,被提取的部分会自动成为vector,而不再是matrix。在进行提取的时候,需要指定drop参数为FALSE来保证最终还是matrix。如r

array为matrix提供了额外的维度,使得matrix由二元变为三元。如test

list的创建方式

1) 带tag的方式:j

2) 无tag的方式:j

3) vector的mode参数:z

list中元素的访问:

1) list_name$tag_name

2) list_name[[tag_name]]

3) list_name[[index]]

list中元素的访问需要双层[[]],如果单层[index]或[tag_name]会访问到tag_name(或者index)与值本身,是个子list,而不仅仅是值;而且,双层[[]]中的只能是单一的tag_name或index,不能是类似[[1:3]]这样访问,而单层可以[1:3],提取出1~3作为子list

不像vector在创建之后就无法增加、删除元素,list中的元素是可以动态增减的

list中可以嵌套list

data frame的创建:

kids

ages

d

data frame中元素的创建

1) d[[index]]

2) d$column_name

3) d[,index]:访问第index列

4) d[index,]:访问第index行

5) d[[a:b]]:访问第a列的第b个元素

6) d[a:b]:对data frame提取a列到b列来构成子frame。

factor可以根据vector构建而出,比如

x

xf

当然也可以是字符类型的vector来构建factor

factor中有个level的概念,level代表的是分组的结果。通过levels()方法可以列出factor的所有level

tapply(x,f,g):vector x按照factor f分组,对每个组运算g方法。其中x与f的长度需要一致。对x的分组f计算,可以不只是一个分组方式,比如对收入x算平均值(g = mean),可以根据年龄段f1来算,也可以根据性别f2来算,于是tapply(x,list(f1,f2),mean)。by()与tapply()类似,但其第一个参数可以是matrix或者data frame。

用split(x,f)方法可以对x进行分组,即taplly的第一步。tapply的第一个参数必须是vector,而split还可接受data frame。

sort()与order()二者都可以用来做排序,前者直接返回数据集,后者返回index,而被排序的数据集不会被改变,如

> x

[1] 13  5  2 15  7

> sort(x)

[1]  2  5  7 13 15

> order(x)

[1] 3 2 5 1 4

> x

[1] 13  5  2 15  7

> y

> y

[1]  2  5  7 13 15

rank()方法可以为vector中的元素排名,如

> rank(c(3,7,2,6,3,9))

[1] 2.5 5.0 1.0 4.0 2.5 6.0

union(x,y):求x与y的并集

intersect(x,y):交集

setdiff(x,y):补集(包含于x而不包含于y的元素将被返回)

setequal(x,y):测试集合是否相等

c %in% y:测试c是否属于y集合

choose(n,k):长度为n的集合中,长度为k的子集个数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值