R语言 删除指定数据的方法

在R学习中经常用到的是按着某种逻辑值提取数据集。本文来讲一下利用索引的手法删除数据集合。

数据准备

> Data
英雄 职业 熟练等级 使用频次 胜率
1  后裔 射手  5  856 0.64
2 孙尚香 射手  5  211 0.10
3 狄仁杰 射手  5  324 0.20
4 李元芳 射手  4  75 0.30
5 安琪拉 法师  5  2324 0.40
6  张良 法师  4  755 0.50
7 不知火舞 法师  4  644 0.60
8  貂蝉 法师  3  982 0.70
9  <NA> <NA>  NA  NA NA

 

方案一:互斥法

> # 提取法师职业
> subset(Data, 职业 != "法师")
英雄 职业 熟练等级 使用频次 胜率
1 后裔 射手 5 856 0.64
2 孙尚香 射手 5 211 0.10
3 狄仁杰 射手 5 324 0.20
4 李元芳 射手 4 75 0.30
> # 提取非法师职业
> subset(Data, 职业 != "法师")
英雄 职业 熟练等级 使用频次 胜率
1 后裔 射手 5 856 0.64
2 孙尚香 射手 5 211 0.10
3 狄仁杰 射手 5 324 0.20
4 李元芳 射手 4 75 0.30
> # 提取胜率大于等于50%
> subset(Data, 胜率 >= 0.5)
英雄 职业 熟练等级 使用频次 胜率
1 后裔 射手 5 856 0.64
6 张良 法师 4 755 0.50
7 不知火舞 法师 4 644 0.60
8 貂蝉 法师 3 982 0.70
> # 提取胜率小于50%
> subset(Data, 胜率 < 0.5)
英雄 职业 熟练等级 使用频次 胜率
2 孙尚香 射手 5 211 0.1
3 狄仁杰 射手 5 324 0.2
4 李元芳 射手 4 75 0.3
5 安琪拉 法师 5 2324 0.4

方案一可以解决一部分的这类问题,但是这种方案需要你的全集不会有缺失值非数这样的其他不在全集里的事件。所以有下面第二种补充方法。

 

方案二:位置法

> n = which(Data$胜率 >= 0.5)
> Data[-n,]
英雄 职业 熟练等级 使用频次 胜率
2 孙尚香 射手 5 211 0.1
3 狄仁杰 射手 5 324 0.2
4 李元芳 射手 4 75 0.3
5 安琪拉 法师 5 2324 0.4
9 <NA> <NA> NA NA NA

可以看到这种删除只删除了胜率大于等于50%,保留了缺失值。

 

总结

数据的增删改查是一般计算机语言基本的操作手段,应该有直接的函数进行操作。

关于R语言入门教程之删除指定数据的方法的文章就介绍至此,更多相关R语言删除指定数据内容请搜索编程宝库以前的文章,希望大家多多支持编程宝库

 一、向量运算向量是有相同基本类型的元素序列,一维数组,定义向量的最常用办法是使用函数c(),它把若干个数值或字符串组合为一个向量。 1.R语言向量的产生方法> x <- c(1,2,3 ...