2015-12-08 58 views
-2

給出了兩個文件如何只保留兩個文件之間的特定名稱的行數?

DF1

df1=read.table("C:\\file1.txt", sep="") 
Value name 
    0.2 sam 
    0.4 david 
    3 david 
    7 nicola 

DF2

File2=read.table("C:\\file2.txt", sep="") 
Value name 
    0.8 nicola 
    0.9 david 

只保留這裏的名字在這兩個文件存在的行。例如,期望的產出:

文件1

Value name 
    7 nicola 

文件2

Value name 
    0.8 nicola 
+0

如果有2大衛2大衛IIN這兩個文件,將你保持這兩行 – akrun

+0

這不是一個愚蠢的鏈接,所以重新打開。 – akrun

+0

我的意思是原始數據集的樣本,以便我可以測試代碼而不是tbl輸出 – akrun

回答

1

我們可以嘗試

tbl1 <- table(df1$name) 
tbl2 <- table(df2$name) 
i1 <- names(tbl1) %in% names(tbl2) 
nm1 <- names(tbl1)[tbl1[i1]==tbl2[i1]] 
df1[df1$name %in% nm1,] 
# Value name 
#4  7 nicola 

i2 <- names(tbl2) %in% names(tbl1) 
i21 <- tbl2[i2]==tbl1[intersect(names(tbl1), names(tbl2[i2]))] 

nm2 <- names(i21)[i21] 
df2[df2$name %in% nm2,] 
# Value name 
#1 0.8 nicola 
+0

@temor我沒有測試過它。但是,希望如此。 – akrun

+0

@temor我的代碼基於提供的示例。你可以嘗試類似於第二個代碼塊 – akrun

+0

@temor我的意思是,嘗試按照我已經用'i2 <-'完成的操作,或者如果你可以顯示一些給出錯誤的小例子,我可以改變代碼。 – akrun

相關問題