<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />在一列中,我有一些带有前导零的数据,一些没有前导零。 是否可以删除前导零而不创建新列?
嗨,詹妮弗,
我很高兴你明白了,我很乐意提供帮助! 如果您遇到困难,请毫不犹豫地提出问题——很可能有很多人有类似的问题!
我希望您喜欢使用 JMP!
朱利安
嗨,詹妮弗,
伟大的! 如果您只有数字,这会更容易,将列数据类型更改为数字,这样就可以为您进行排序。 要更改列数据类型,请选择该列,然后转至“列”菜单 >“列信息”。 您可以将数据类型更改为数值,并将建模类型更改为连续。现在,当您按该列排序时(通过右键单击数据表中的列 > 排序,或表菜单 > 排序),JMP 会自然地对这些数字进行排序。
朱利安
没关系,我想我已经明白了。 我必须将其从字符更改为数字,我相信这就是您想要告诉我的。 对不起。 再次感谢你的帮助!!
尊敬,
詹妮弗
嗨朱利安,
该列仅包含数字,但我希望能够将其更改为连续列,而不仅仅是名义或序数列,以便我可以进行需要数据采用连续格式的特定分析。
尊敬,
詹妮弗
嗨贾罗威,
如果您的列是字符列,JMP 将按照您所说的方式对数据进行排序,1, 11, 12, 13, 2, 3 等。如果列是数字,JMP 将按照自然顺序对列进行排序,1, 2, 3 、 4 等。您的列是否包含字符? 如果是这样,更改为数字将不是一个选择,因此我们需要做一些更有创意的事情。 我要做的就是在数据前面添加一些零,然后修剪结果以限制字符总数。 例如,如果您有以下值:1a、2e、13h、33f、201v,我们想要的是在前面添加零,这样我们最终得到 001a、002e、013h、033f、201v。 请注意,这意味着我们要在前面添加不同数量的零(有时 2 个,有时 1 个,有时没有)。 我们可以通过一些条件逻辑来处理这个问题,但是将我们需要的最大数量的零(2)添加到所有数据中会更容易,然后使用名为“right”的字符函数从其中获取最正确的字符每一行。 例如,假设我们在每个值前面添加 2 个零(这会产生 001a、002e、0013h、0033f、00201v),然后我们应用另一个公式,该公式只取每个值中最右边的 4 个字符(这会产生我们想要的 001a、002e) 、013h、033f、201v)。 我们只需使用鼠标(和几次按键)即可通过 JMP 中的公式来完成这一切。
1. 通过转到“列”菜单 >“新建列”创建一个新列。

2. 对于数据类型,选择“字符”。 如果您希望有前导零和字符,这是必要的(数字列将忽略前导零,因为它们对实际数字没有意义,并且不能存储字母)。 完成此操作后,单击“确定”
3. 选择新列,然后转到“列”菜单 >“公式”
4. 这是公式编辑器。 在这里,您可以定义适用于整个列的公式。 我们想要的是一个公式,它将在原始列中的现有值前面添加一个零(或任何您想要的字符)。 我们可以使用称为“concatenate”的字符函数来完成此操作。 以下是设置该公式的步骤:
A。 在右上部分(功能组列表)中选择“字符”,然后选择“连接”

b.在公式编辑器中,您现在将看到以下内容:

C。 这两个矩形称为该函数的参数——它们需要填充列或文本。 在您的情况下,您希望将值添加到另一列的开头,因此首先通过单击第二个框来选择它,然后在左上角的列列表中选择原始列。 这是您应该拥有的内容(但带有您自己的专栏名称):

d. 就我而言,随机 ID 列已设置为字符列,因为它包含字母。 如果您的原始列是数字,您需要告诉 JMP 将数字数据转换为您要添加到前面的字符串。 为此,请再次选择“字符”功能组,然后选择“字符”。 这将更新公式并向 JMP 添加说明,以将您选择的列的内容转换为字符。

e. 接下来我们需要决定要前置什么。 双击第一个矩形,这将打开该字段的编辑器。 在这里,我们要在前面添加我们需要的最多数量的零。 对于我上面使用的示例,我们将在前面添加两个零。 输入(带引号)“00”,然后按 Enter 或 Return 键。在我们点击 Enter 之前,它会是这样的:

F。 单击返回后,JMP 将关闭该字段的编辑器。 现在,如果我们应用这个公式,我们最终会在每个值前面都有两个零。 但是,像“201v”这样的值不需要零,如果我们在这些值前面加上零,我们的排序将不起作用。 因此,我们将对此公式再应用一个函数,以仅保留最右边的 4 个字符。 为此,请通过单击我们编写的公式的最外面的框来选择整个公式。 当您执行此操作时,该框将突出显示,如下所示:

G。 现在,我们将应用字符函数组中的另一个字符函数。 选择字符组,然后选择“right” 这会将 right() 函数应用于整个公式,并为我们提供一个空间来输入我们希望从右侧提取的字符数。 在本例中,我将通过双击“n”字段并输入 4(不带任何引号)来输入 4。 当我点击返回时,这就是我所拥有的:

H。 您的公式已准备好运行。 单击“确定”按钮,您应该会看到新列填充了所有原始值,但前面添加了所需数量的零。在您的情况下,您可能需要修改添加的零数量以及正确的修剪数量。 要确定这一点,请计算出最高值的字符数(这将是正确的修剪数字),然后确定需要为最小值添加多少个零(这将是您应该在前面添加的零数)一切)。
我希望这有帮助!
朱利安
我对 jmp 真的很陌生,请原谅我的无知。
有没有办法将我的所有数据更改为前面有零或更改列表,使其按实际数字顺序而不是 1、11、12、13、2、3、4 等?
只要任何行中都没有存储任何字符,拜伦的建议就会完美地发挥作用。 如果这样做,这些条目将在将列更改为数字时被删除。
由于您的数据中有那些前导零,因此该列必须已设置为字符,我假设是因为您要存储字母和数字。 要消除这些零,您可以在“编辑”>“搜索”>“查找”中使用正则表达式。正则表达式非常强大,但看起来不太友好。 对于您的情况,以下正则表达式将搜索前导零,但不会找到字符串内的零:
(?
通过将列数据类型更改为数字并将建模类型更改为连续,前导零将会消失。