如果列中的值与另一列中的值匹配,则用“空白”替换该列中的值

XCCH004

我有以下数据集作为 R 中的数据框

article_number   1st_cutoff_date   2nd_cutoff_date

abc                12/01/2019       01/14/2020

def                02/10/2020       02/10/2020

我想要做的是在 1st_cutoff_date == 2nd_cutoff_date 的情况下,然后用空白值“”替换 2nd_cutoff 日期。所以在第二种情况下 'def' 那么 2nd_cutoff_date 将是空白的“”

数据框是因素,并且有 NA - 我已转换为字符并尝试了以下操作:

AAR_FTW_Final_w_LL[AAR_FTW_Final_w_LL$`1st_Booking_Deadline` == AAR_FTW_Final_w_LL$`2nd_Booking_Deadline`, c("2nd_Booking_Deadline")] <- " "

&

ind<- AAR_FTW_Final_w_LL$`1st_Booking_Deadline` == AAR_FTW_Final_w_LL[`2nd_Booking_Deadlilne`]
AAR_FTW_Final_w_LL[ind, c("2nd_Booking_Deadline")] <- " "

两者都返回错误:

Error in AAR_FTW_Final_w_LL$`1st_Booking_Deadline` : 
  $ operator is invalid for atomic vectors

我曾尝试将 $ 替换为 [],但随后出现错误,指出缺少其中一列。有没有更简单的方法来完成这项任务?

罗纳克·沙阿

从因子转换为字符:

df[] <- lapply(df, as.character)

然后使用 replace

transform(df, `2nd_cutoff_date` = replace(`2nd_cutoff_date`, 
                            `1st_cutoff_date` == `2nd_cutoff_date`, ''))

#  article_number X1st_cutoff_date X2nd_cutoff_date
#1            abc       12/01/2019       01/14/2020
#2            def       02/10/2020                 

它添加X到列名中,因为在 R 中列以数字开头不是标准。


将数据转换为字符后的另一种方法是

df$`2nd_cutoff_date`[df$`1st_cutoff_date` == df$`2nd_cutoff_date`] <- ""

数据

df <- structure(list(article_number = structure(1:2, .Label = c("abc", 
"def"), class = "factor"), `1st_cutoff_date` = structure(2:1, 
.Label = c("02/10/2020", "12/01/2019"), class = "factor"), 
`2nd_cutoff_date` = structure(1:2, .Label = c("01/14/2020", 
"02/10/2020"), class = "factor")), class = "data.frame", row.names = c(NA, -2L))

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如果满足条件,则用另一列中的值替换一列中的行

如果列中不存在NA,则用另一列中的值替换-sqldf

熊猫:如果列中的值出现在另一列中,则用第三列中的值替换

熊猫:如果列名存在于另一列中,则用1填充列值

在匹配另一列中的值后替换一列中的值

Python-如果另一列的值在列表中,则熊猫替换列中的值

如果值在另一个数据框中,则用NA替换多列

如果我在另一列中有特定值,如何替换列中的 NA 值?

如果我在另一列中有特定值,如何替换列中的 NA 值?

如果我在另一列中有特定值,如何替换列中的 NA 值?

根据条件匹配另一列的向量替换一列中的值

如果缺少另一列,则替换一列中的值

熊猫根据另一列中的值替换值

如果满足条件,则用另一列的行值替换行值

如果R中的模式(行向)匹配,则用其他列中的值替换多个列中的值

匹配一列中的文本值,并对另一列中匹配的值执行函数

如果它们是某个值,则用其他列中的值替换列中的值

在一列中查找值,如果匹配,则添加另一列中的值Google Script Google表格

根据另一列替换列中的值

如果另一列中的值在列表中,则更改一列中的值[R]

根据另一列中的值用预定值替换一列中的NA

根据条件将一列中的值替换为另一列中的值

根据另一列中的共识值替换一列中的NA值

Excel-用另一列中的值替换一列中的值

用一列中的值替换另一列中的值

如何用另一列中的值替换一列中的值

如何计算一列中与另一列中的值不匹配的值的比例?

如果另一列是NaN,如何替换列中的值?

Pandas:如果条件为真,则使用另一列替换列中的值