在下面的示例数据框中(原始由数千行和数百列组成),Date1 和 Date2 中的某些值是未知的,它们不需要相关:
Data_Frame <- data.frame(ID = c("A1", "A2", "A3", "A4", "A5", "A6", "A7", "A8", "A9", "A10"),
Date1 = c("2010-08-03", "2012-11-28", "2009-12-13", "2000-01-15", "2003-03-01", "2015-05-09", "2020-07-11", "unknown", "2011-01-04", "unknown"),
Value = c(2.86, 3.43, 4.65, 6.91, -2.22, 9.92, 23.41, -0.032, 8.84, 10.11),
Date2 = c("unknown", "2015-10-22", "2019-02-14", "2010-11-25", "unknown", "2017-03-12", "2019-09-12", "unknown", "2021-05-14", "2012-08-20"))
我想避免插补,因为它会产生许多人工日期值。此外,为了避免为列中的每个日期值创建虚拟变量(它们以千为单位,并且数据框的大小将迅速增加),创建两列是否有意义,其中 1 是所有日期的条目第二列中不是未知的值,未知值为 0,反之亦然,如下所示:
Data_Frame <- add_column(Data_Frame, Date11 = ifelse(Data_Frame$Date1 != 'unknown', 1, 0), .after = "Date1")
Data_Frame <- add_column(Data_Frame, Date12 = ifelse(Data_Frame$Date1 == 'unknown', 1, 0), .after = "Date11")
Data_Frame <- add_column(Data_Frame, Date21 = ifelse(Data_Frame$Date2 != 'unknown', 1, 0), .after = "Date2")
Data_Frame <- add_column(Data_Frame, Date22 = ifelse(Data_Frame$Date2 == 'unknown', 1, 0), .after = "Date21")
这使
在分析中使用 Date11、Date12、Date21 和 Date22 并删除 Date1 和 Date2 是否有意义?我相信这是错误的。例如,如果在数据预处理期间必须处理因子列中的一个级别以生成虚拟变量而不是所有条目(以避免额外的列)以避免信息丢失,那么如何处理这样的问题?