中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

R語言中根據數據框的順序進行篩選的示例分析

發布時間:2021-11-22 09:50:59 來源:億速云 閱讀:296 作者:柒染 欄目:大數據

本篇文章給大家分享的是有關R語言中根據數據框的順序進行篩選的示例分析,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

目的

這里有兩個數據框,兩者有相同的列(ID),這里想把第一個數據框,按照第二個數據框的ID列進行提取,順序和第二個數據框一致。

數據框1

> tt = data.frame(id = 1:10,y = rnorm(10))
> tt
   id          y
1   1  0.7264999
2   2 -1.3817018
3   3 -0.8626703
4   4  2.0663756
5   5  0.1997253
6   6  0.5968497
7   7 -0.8836847
8   8  2.2224643
9   9 -1.5825250
10 10 -0.1530456
   

數據框2

> id = data.frame(id = c(2,1,5,4,3))
> id
  id
1  2
2  1
3  5
4  4
5  3
   

錯誤的方法:用%in%進行提取,會自動排序

> # 使用 %in% 進行匹配時,會自動排序,不是id的順序
> tt[tt$id %in% id$id,]
  id          y
1  1  0.7264999
2  2 -1.3817018
3  3 -0.8626703
4  4  2.0663756
5  5  0.1997253
> id
  id
1  2
2  1
3  5
4  4
5  3
 

可以看到,匹配后的順序為1,2,3,4,5,而不是原來的2,1,5,4,3

 

正確的方法:用match記錄位置,然后根據位置提取

> # 使用match可以達到目的
> loc = match(id$id,tt$id)
> loc
[1] 2 1 5 4 3
> tt[loc,]
  id          y
2  2 -1.3817018
1  1  0.7264999
5  5  0.1997253
4  4  2.0663756
3  3 -0.8626703
   

結論:match真香

「完整代碼:」

# 模擬兩個數據框
tt = data.frame(id = 1:10,y = rnorm(10))
tt
id = data.frame(id = c(2,1,5,4,3))
id

# 使用 %in% 進行匹配時,會自動排序,不是id的順序
tt[tt$id %in% id$id,]
id

# 使用match可以達到目的
loc = match(id$id,tt$id)
loc
tt[loc,]

我的翻車記錄

本來我是有兩個系譜文件,第一個系譜文件比較多,但是有錯誤。第二個系譜文件是第一個系譜文件的子集,它的系譜是正確的。我想將第一個系譜文件錯誤的系譜矯正一下。

「我的思路:」

1,用%in%將第一個系譜的ID,根據第二個系譜的ID提取出來,然后用第二個系譜的Sire和Dam把第一個系譜相應的IID的Sire和Dam替換掉。如果第二個系譜本身是排序的,那么這樣操作是沒問題的。

「潛在的bug」

如果第二個系譜不是按順序排的,那么上面的操作就會有錯誤。比如類似(2,1,4,3,5),在匹配后的順序是(1,2,3,4,5),你用(1,2,3,4,5)的父母本,替換為(2,1,5,3,5)的父母本,肯定是錯誤的。

以上就是R語言中根據數據框的順序進行篩選的示例分析,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

佳木斯市| 贵南县| 莆田市| 东方市| 边坝县| 灵山县| 海阳市| 赣榆县| 萝北县| 云龙县| 庄河市| 桂林市| 泸水县| 中西区| 天津市| 三亚市| 台中县| 武邑县| 大石桥市| 靖西县| 汤阴县| 驻马店市| 清镇市| 叙永县| 延津县| 咸丰县| 盐源县| 崇州市| 仙游县| 叶城县| 成武县| 富裕县| 新化县| 吴忠市| 驻马店市| 青冈县| 师宗县| 顺昌县| 双柏县| 霍林郭勒市| 锡林浩特市|