假設我有兩個數據幀(DF1 & DF2)並且都包含(x,y)座標。我想提取一對DF1中的(x,y),但不是DF2。例如:減去兩個數據幀
DF1<-data.frame(x=1:3,y=4:6,t=10:12)
DF2<-data.frame(x=3:5,y=6:8,s=1:3)
我想
DF_new<-data.frame(x=1:2,y=4:5,t=10:11).
我應該爲更大的數據集呢?謝謝!
假設我有兩個數據幀(DF1 & DF2)並且都包含(x,y)座標。我想提取一對DF1中的(x,y),但不是DF2。例如:減去兩個數據幀
DF1<-data.frame(x=1:3,y=4:6,t=10:12)
DF2<-data.frame(x=3:5,y=6:8,s=1:3)
我想
DF_new<-data.frame(x=1:2,y=4:5,t=10:11).
我應該爲更大的數據集呢?謝謝!
對於非常大的數據集,您可以在data.table
感興趣:
library(data.table)
DF1<-data.frame(x=1:3,y=4:6,t=10:12)
DF2<-data.frame(x=3:5,y=6:8,s=1:3)
library(data.table)
DF1 <- data.table(DF1, key = c("x", "y"))
DF2 <- data.table(DF2, key = c("x", "y"))
DF1[complete.cases(DF1[DF2])] # maybe you want this?
DF2[DF1]
DF1[!DF2] # or maybe you want this?
DF2[!DF1]
謝謝!有用!這是否意味着如果我想要比較多個列值(如果我只比較一個變量而不是一對變量),那麼我必須設置「關鍵字」(%中的coz%將起作用)? – Cathy
簡答:是的。很長的回答:1)速度要快得多(如果時間是一個問題)2)除非你能想出更多「優雅」的方式來用%3來執行此操作),這使得你可以對數據執行各種精彩的操作按照[data.table文件介紹](http://datatable.r-forge.r-project.org/datatable-intro.pdf)中所述進行設置並附帶示例。 –
library(tidyverse)
DF1<-data.frame(x=1:3,y=4:6,t=10:12)
DF2<-data.frame(x=3:5,y=6:8,s=1:3)
anti_join(DF1, DF2)
#> Joining, by = c("x", "y")
#> x y t
#> 1 1 4 10
#> 2 2 5 11
要清楚,你想找到(x,y)對在BOTH數據框中,但具有不匹配的t值? – alexwhan
哦!我對預期的輸出錯誤!我對此非常抱歉。我已經更新了這個問題。我想找到其中(x,y)在DF1中的(x,y,t),但不是DF2 – Cathy
OH,我猜@agstudy回答了我的問題。謝謝你的幫助!! – Cathy