這個功能類似Excel中Vlookup函數的效果。但Excel畢竟有儲存欄位數量的限制,換句話說,Excel能處理數據量級是受限制的。在R語言中,亦可用which來實現查詢符合條件的對應行列數據。
延續[R]如何根據特定字元拆分數據(str_split_fixed)?一文, 可知ratings_tb為具有四個變量的dataframe,其中包含UserID, MovieID,Ratig和Timestamp四個變量,如下圖一所示。
![](https://img-blog.csdnimg.cn/2020100512391326.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjAwODAzMQ==,size_16,color_FFFFFF,t_70)
若欲進一步取得rating=5的MovieID數據,可參考下列語法。其中用head僅取出前15個rating為5的MovieID,以供與圖一數據對照。
#query MovieID which rating=5
mv_rating_5<-ratings_tb[which(ratings_tb$Rating == 5),'MovieID']
#輸出結果
> head(mv_rating_5,15)
[1] "1193" "2355" "1287" "2804" "595" "1035" "3105" "1270" "527" "48" "1836"
[12] "1022" "150" "1" "1961"
-----如果文章對您有幫助,打開微信掃一掃,請作者喝杯咖啡。-----