我有两个数据帧df1和df2。它们具有相同的(两列)列。我想从df2中删除df1中的行。
答案 0 :(得分:8)
你可以用几个包来做到这一点。但是这里是如何用基础R做的。
df1 <-matrix(1:6,ncol=2,byrow=TRUE)
df2 <-matrix(1:10,ncol=2,byrow=TRUE)
all <-rbind(df1,df2) #rbind the columns
#use !duplicated fromLast = FALSE and fromLast = TRUE to get unique rows.
all[!duplicated(all,fromLast = FALSE)&!duplicated(all,fromLast = TRUE),]
[,1] [,2]
[1,] 7 8
[2,] 9 10
答案 1 :(得分:3)
试试这个:
df2 <-matrix(1:6,ncol=2,byrow=TRUE)
df1 <-matrix(1:10,ncol=2,byrow=TRUE)
data.frame(v1=setdiff(df1[,1], df2[,1]), v2=setdiff(df1[,2], df2[,2]))
v1 v2
1 7 8
2 9 10
请注意,df1
和df2
与Lapointe相同,但反过来,因为你想从df2中删除df2中的行,所以setdiff从{{1 } {}包含在x
中。见y
你会得到与Lapointe的相同的结果
答案 2 :(得分:0)
考虑到您有一个在两个数据帧之间匹配的变量(var_match),我得到了一个简单的答案:
<form [formGroup]="createForm" class="create-form">
<mat-form-field class="field-full-width">
<mat-label>Instrument</mat-label>
<mat-select matInput formControlName="createForm.get('Machine_ID')" #Machine_ID>
<mat-option *ngFor="let instrument of instruments" [value]="instrument.instrumentName">
{{instrument.instrumentName}}
</mat-option>
</mat-select>
</mat-form-field>
</form>
<button (click)="addSample()"
[disabled]="createForm.invalid" mat-raised-button color="primary">Save</button>