[英]Compare Two Data Frame And Keep Columns That Match For Specific Row
我有兩個數據框,它們有一行是唯一鍵並且存在於兩個數據集中。 我只想保留那些特定行值匹配的列。
對於下面的數據Data_1
第一行是1
, 2
, 3
, 4
,但是Data_2
只有1
, 2
, 3
。 我想要比較或子集,以便Data_1
只有第一行為1
, 2
, 3
,因為這些鍵僅存在於兩個數據幀中。
目標不是合並,而是基於兩個不同數據幀的比較進行子集化。
關於如何完成這項工作的任何建議?
數據_1
read.table(text = "A B C D
1 2 3 4
1.1 1.2 1.3 1.4
1.1 1.2 1.3 1.4
1.1 1.2 1.3 1.4
1.1 1.2 1.3 1.4
1.1 1.2 1.3 1.4", header = T)
數據_2
read.table(text = "A1 B1 C1
1 2 3
1.0 2.2 4.3
1.0 2.2 4.3
1.0 2.2 4.3
1.0 2.2 4.3
1.0 2.2 4.3 ", header = T)
輸出
只有Data_1
發生變化,因為它有一個額外的行不在Data_2
基於第 2 行的值
read.table(text = "A B C
1 2 3
1.1 1.2 1.3
1.1 1.2 1.3
1.1 1.2 1.3
1.1 1.2 1.3
1.1 1.2 1.3", header = T)
你的問題有點不清楚。 但是,如果您只是嘗試根據 data_2 中的一行對 data_1 進行子集化,則下面的代碼將起作用。 換句話說,下面的代碼生成您想要的“輸出”數據幀。
data_1 <- read.table(text = "A B C D
1 2 3 4
1.1 1.2 1.3 1.4
1.1 1.2 1.3 1.4
1.1 1.2 1.3 1.4
1.1 1.2 1.3 1.4
1.1 1.2 1.3 1.4", header = T)
data_2 <- read.table(text = "A1 B1 C1
1 2 3
1.0 2.2 4.3
1.0 2.2 4.3
1.0 2.2 4.3
1.0 2.2 4.3
1.0 2.2 4.3 ", header = T)
output <- data_1[data_1[1,] %in% data_2[1,]]
A B C
1 1.0 2.0 3.0
2 1.1 1.2 1.3
3 1.1 1.2 1.3
4 1.1 1.2 1.3
5 1.1 1.2 1.3
6 1.1 1.2 1.3
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.