逐行匹配数据框两列的值
Match the values row by row of two columns of a data frame
我有一个类似这样的数据框:
| Employee | Expense_Type | Default_Expense | Amount | |
|----------|-----------------|-----------------|--------|---|
| John | Airfare | Airfare | 1000 | |
| David | Hotel_Tax | Hotel | 50 | |
| Nancy | Miscellaneous | Undefined | 500 | |
| Mike | Individual_Meal | Individual_Meal | 75 | |
| Jenny | Airline_tax | Airfare | 125 | |
我想逐行比较 'Expense_Type' 和 'Default_Expense' 列并生成一个新列来粘贴不匹配的值。例如,从上面的table,我们可以看出第2、3、5行不匹配,因为hotel_tax与hotel不同,miscellaneous与undefined不同,airline_tax不同比机票。
我尝试研究在遇到以下解决方案时提到的不同问题:
df2$Expense_Type[!(df2$Expense_Type %in% df2$Default_Expense)]
但这似乎对我不起作用。
%in%
运算符不比较每一行。使用 ==
运算符来做到这一点。这会将每一行转换为可用于过滤的布尔值:-)
df2[df2$Expense_Type == df2$Default_Expense, ]
对于值:
df$newcol <- ifelse(df2$Expense_Type == df2$Default_Expense, "Correct", "Wrong")
我有一个类似这样的数据框:
| Employee | Expense_Type | Default_Expense | Amount | |
|----------|-----------------|-----------------|--------|---|
| John | Airfare | Airfare | 1000 | |
| David | Hotel_Tax | Hotel | 50 | |
| Nancy | Miscellaneous | Undefined | 500 | |
| Mike | Individual_Meal | Individual_Meal | 75 | |
| Jenny | Airline_tax | Airfare | 125 | |
我想逐行比较 'Expense_Type' 和 'Default_Expense' 列并生成一个新列来粘贴不匹配的值。例如,从上面的table,我们可以看出第2、3、5行不匹配,因为hotel_tax与hotel不同,miscellaneous与undefined不同,airline_tax不同比机票。
我尝试研究在遇到以下解决方案时提到的不同问题:
df2$Expense_Type[!(df2$Expense_Type %in% df2$Default_Expense)]
但这似乎对我不起作用。
%in%
运算符不比较每一行。使用 ==
运算符来做到这一点。这会将每一行转换为可用于过滤的布尔值:-)
df2[df2$Expense_Type == df2$Default_Expense, ]
对于值:
df$newcol <- ifelse(df2$Expense_Type == df2$Default_Expense, "Correct", "Wrong")