如何使用行中的某些标题对数据进行子集化?你好,我有一个大数据,其中有些行里面有标题。我想用标题的值对每个标题的数据进行子集化。我的数据如下所示:
| 标题 1 | 第 2 列 | 第 3 列 | 第 4 栏 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 标题 2 | 第 2 列 | 第 3 列 | 第 4 栏 |
| 2 | 2 | 2 | 2 |
| 2 | 2 | 2 | 2 |
| 标题 3 | 第 2 列 | 第 3 列 | 第 4 栏 |
| 3 | 3 | 3 | 3 |
| 3 | 3 | 3 | 3 |
| 3 | 3 | 3 | 3 |
我需要对每个标题的数据进行子集化,因此我应该将标题 2 与
| 标题 2 | 第 2 列 | 第 3 列 | 第 4 栏 |
| 2 | 2 | 2 | 2 |
| 2 | 2 | 2 | 2 |
标题 3
| 标题 3 | 第 2 列 | 第 3 列 | 第 4 栏 |
| 3 | 3 | 3 | 3 |
| 3 | 3 | 3 | 3 |
| 3 | 3 | 3 | 3 |
我尝试创建一个 Flag 列,为每个标题分配 1,然后将其分配为子集。但结果不正确,因为它是子集 1,而子集 1 包含所有标题,因此为空白。这是我创建的:
CSV << New Column ("Flag", Numeric);
r = CSV << getRowsWhere( Contains( :Header 1, "Header " ));
Column(CSV, "Flag")[r] = 1;请帮忙
自动化和脚本视窗回复:如何使用行中的某些标题对数据进行子集化?将 Header1 从列名“向下”移动(如果存在),

使用如下公式创建标志列
If(Starts With(:Column 1, "Header"),
flag = :Column 1
);
flag;

然后您可以使用该新列作为子集

回复:如何使用行中的某些标题对数据进行子集化?抱歉,我有点困惑。您是如何创建 Header1 Column 的?
回复:如何使用行中的某些标题对数据进行子集化?使用列名 -> 向下移动

回复:如何使用行中的某些标题对数据进行子集化?If(Starts With(:Column 1, "Header"),
flag = :Column 1
);
flag;
很酷的临时标志- 也适用于后续行。
回复:如何使用行中的某些标题对数据进行子集化?您可能希望通过确保它已被初始化,例如通过使用 As Constant() (或 If(Row() == 1,....)来使其更加健壮。在这种情况下,没有必要,所以我没有理会它
As Constant(flag = "");
If(Starts With(:Column 1, "Header"),
flag = :Column 1
);
flag;
另外,可读性可能会提高,比如
As Constant(flag = "");
If(Starts With(:Header 1, "Header"),
flag = :Header 1
,
flag
)
您只想“返回”您希望在行中看到的值。
回复:如何使用行中的某些标题对数据进行子集化?我的意思是第 5 列,抱歉造成混淆
回复:如何使用行中的某些标题对数据进行子集化?获得正确的列标题后,使用公式创建新列

回复:如何使用行中的某些标题对数据进行子集化?可以使用 JSL 来完成吗?
回复:如何使用行中的某些标题对数据进行子集化?是的。我认为 JMP 可以记录所有这些操作,您可以从增强日志(或构建工作流程)中获取脚本
回复:如何使用行中的某些标题对数据进行子集化?要使用公式创建列,请右键单击列标题以添加新列:

在列菜单中,添加一个公式

并粘贴@jthi帖子中的公式。