文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

怎么在R语言中使用筛选数据

2023-06-14 19:20

关注

这期内容当中小编将会给大家带来有关怎么在R语言中使用筛选数据,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

什么是R语言

R语言是用于统计分析、绘图的语言和操作环境,属于GNU系统的一个自由、免费、源代码开放的软件,它是一个用于统计计算和统计制图的优秀工具。

match

match:匹配两个向量,返回x中存在的返回索引或TRUE、FALSE

match函数使用格式有如下两种:

第一种方便设置参数,返回x中元素在table中的位置

match(x, table, nomatch = NA_integer_, incomparables = NULL)

第二种简洁,返回x中每个元素在table中是否存在

x %in% table

参数详解

x: 向量, 要匹配的值;

table: 向量, 被匹配的值;

nomatch: 没匹配上的返回值, 必须是整数;

incomparables: 指定不能用来匹配的值.

match函数是一个完全匹配函数, 当两个元素类型不一样时, 如果进行类型转换后匹配得上的话, 则仍可匹配, 可看下例.

匹配上且返回位置

match(c(1, "TRUE"), c(T, 0, "1"))

返回3 1,即1位于表中的3号位,TRUE位于1号位,且T和TRUE可匹配成功

c(1, "TRUE", F) %in% c(T, 0, "1")

返回TRUE TRUE FALSE,表示每个元素在table中是否存在

pmatch

pmatch函数是一个部分匹配函数, 依次从x里面挑出元素, 对照table进行匹配, 若匹配上则剔除匹配上的值, 不再参与下次匹配, duplicate.ok可设置是否剔除; 对于某一个元素,

匹配一共分成三步:

如果可以完全匹配, 则认为匹配上了, 返回table中的位置;

不满足上述条件, 如果是唯一部分匹配, 则返回table中的位置;

不满足上述条件, 则认为没有值与其匹配上.

pmatch函数的格式

pmatch(x, table, nomatch = NA_integer_, duplicates.ok = FALSE)

x: 向量, 要匹配的值;

table: 向量, 被匹配的值;

nomatch: 没匹配上的返回值, 必须是整数;

duplicates.ok: table里面的元素是否可以适用多次.

默认不允许重复使用table中元素,返回位置1 2 3

pmatch(rep(1, 3), rep(1, 5))

允许重复,返回位置1 1 1

pmatch(rep(1, 3), rep(1, 5), duplicates.ok = TRUE)

补充:R语言实例-数据过滤

1、问题

一组数据,变量有40个,就是40列。

我要做数据筛选。

第一列中包含语段"a11","a12","b23"。请注意是包含,实际不存在“a11”,往往是“a1120”之类的信息

第二列中不包含“美国”、“日本”等信息。请注意,也是不包含,而不是不等于。

请问具体的R语言语句应该怎么写?

2、解决

假设楼主的数据为一数据框,名字为“testdat”,第一列名"a",第二列名"b",则过滤语句为:

result<-subset(testdat,grepl("a11|a12|b23",testdat$a) & !grepl("美国|日本",testdat$b))

3、注意

grep()函数返回的是匹配元素的索引,grepl()返回的是匹配或不匹配的逻辑值:

grep(value = FALSE) returns a vector of the indices of the elements of x that yielded a match (or not, for invert = TRUE. This will be an integer vector unless the input is a long vectorgrepl returns a logical vector (match or not for each element of x).

上述就是小编为大家分享的怎么在R语言中使用筛选数据了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注编程网行业资讯频道。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯