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语言删除指定数据内容请搜索呐喊教程以前的文章或继续浏览下面的相关文章希望大家以后多多支持呐喊教程!

声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:notice#nhooo.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。