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語言刪除指定數據內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: