暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

which函数的用法

大数据技术派 2017-11-04
1835

R语言的which函数主要是用于条件筛选,在R语言里面用的非常多,因为很多时候我们都需要筛选满足一些特定条件的数据记录。


向量

> a <- c(2,4,5,2,2,3)

> which(a == 2)

[1] 1 4 5

这里返回了向量a里面等于2的下标是1,4,5;还可以根据不等号筛选,比如:

> which(a>3)

[1] 2 3

这就筛选出了a里面大于3的数据的下标,怎么把这些数据取出呢?可以这样

> a[which(a>3)]

[1] 4 5

这样就取出了实际数据,当然了,有时候也需要取出下标!


矩阵

> mat <- matrix(c(1:24),nrow = 4,byrow = FALSE)

我们想取出第一列大于2的所有数据行,应该怎么做呢?

可以考虑这样做!

  • 1、找出第一列大于2的行数;

  • 2、取出数据行;


数据框

实际操作中处理最多的就是数据框了,因为我们学习语言总归是要处理实际问题的,实际数据一般就是一个二维数据表,一般就是一个数据框!

> dat <- data.frame(id=c(1:5),name=c('a','b','c','d','f'),score=c(68,97,89,76,82))

> dat

  id name score

1  1    a    68

2  2    b    97

3  3    c    89

4  4    d    76

5  5    f    82

我们这里要找出成绩(score)大于80的数据记录,怎么做呢?

其实,这与矩阵的做法类似,几乎一样,其实矩阵只是要求装同种元素,一般都是数值型数据,而数据框就是一个大熔炉了。

  • 1、成绩大于80的行;

  • 2、根据行取出数据;

> dat[which(dat$score>80),]

  id name score

2  2    b    97

3  3    c    89

5  5    f    82

这样就取出了,成绩大于80的记录了。

觉得不错,记得点赞哦,也可以分享、让更多的人看到!


这里有一群关注R语言的数据爱好者,就差你了!


文章转载自大数据技术派,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论