Excel 中的虚拟数组中的分类列

Categorical column in to a dummy array in Excel

我正在尝试将机器学习模型转化为 excel,以便数据分析师可以交互式地使用它。

我想将分类变量转换为虚拟表示:

WeekDay
Monday
Thursday

WeekDay
{1,0,0,0,0,0,0}
{0,0,0,1,0,0,0}

使用 excel 个数组。

我试过这个:

={INT(A1="Monday"),INT(A1="Tuesday"),INT(A1="Wednesday"), ...}

但是,由于某些原因,excel 不接受数组表达式中的 forumlas。

这种方法确实有效,但存在问题 - 因为它不允许将多个数组合并为一个

=IF(A1="Monday", {1,0,0,0,0,0,0}, IF(A1="Tuesday", {0,1,0,0,0,0,0}, ....))

还有,超级丑

有什么想法吗?

要获取数组,您可以像这样使用 INDEX:

INDEX(IF(TEXT(ROW(:),"dddd")=A1,1,0),0)

这 return 是一个垂直数组。

到return水平数组使用:

INDEX(IF(TEXT(COLUMN($B:$H),"dddd")=A2,1,0),0)

我在下面的照片中泄露了数组的结果:


如果有动态数组公式 SEQUENCE,则 ROW 和 COLUMN 可以替换为:

SEQUENCE(7,,2)

SEQUENCE(,7,2)

分别

我不确定最终目标是什么,但我建议不要使用数组(同样,假设您没有使用 VBA,即使您使用了 Case 函数,这也是很有可能的):

使用公式 =Weekday(Cell,different return type for which day should = 1)

如果您要使用实际日期(例如 5/1/2020),则通过自定义格式仅显示星期几(通常数据分析已经具有完整日期),

单元格值 A20 = "5/1/2020",格式显示长日期 - "Friday, May 1, 2020"

使用公式“=WEEKDAY(A20,1)”= 6 引用的单元格

使用公式 '=WEEKDAY(A20,2)' = 5 引用的单元格(这类似于 {0,0,0,0,1,0,0} 是否足以让您使用?)

如果使用 VBA,您可以定义一个范围,将其转换为 {0,0,0,0,1,0,0}

希望对您有所帮助。