什么是持续时间,它与长度有何不同?以及为什么将 duration=1 的 char 变量转换为 numeric 时,duration 变为 8
What is duration and how is it different to length? And why when a char variable with duration=1 is transformed to numeric, the duration becomes 8
什么是变量的持续时间,它与长度有何不同?
为什么当你使用输入函数将一个duration=1的char变量转换为numeric时,新的numeric变量的duration是8?
例如。
一个字符串变量,包含从 0 到 9 的数字(只有 1 个数字),因此它的持续时间 = 1。
转换为数值时,数值变量包含0到9的数字,但duration=8
不确定您在哪里看到 持续时间 与变量定义有关。持续时间是时间的度量。也许你的意思是 width?
当您谈论变量的 宽度 时,您是在谈论将变量显示为字符串需要多少个字符。当您指定格式或信息格式时,您可以在格式名称之后和句点之前包括要使用的 width。如果您从文本文件中读取单个数字,那么您将使用宽度为 1 的信息格式。或者要写入 0 到 9 之间的整数,您可以使用宽度为 1 的格式。但是格式或信息格式中使用的宽度与变量的长度无关。
变量的长度 是 SAS 将用来在数据集中存储变量的字节数。 SAS只有两种类型的变量,浮点数和定长字符串。
对于数字,SAS 使用 64 位浮点数,因此它们占用 8 个字节。因此,您不能定义长度大于 8 的数字。如果将数字变量的长度设置为小于 8,则 SAS 将通过丢弃尾数中的某些位来存储截断值,从而丢失一些精度值。
对于字符变量,长度是它将存储的字节数。使用单字节编码(如 WLATIN1),每个字符将只占用一个字节。但是,如果您使用 UTF-8 编码,那么每个单独的字符可能需要 1 到 4 个字节的存储空间。
例如,DATE9.
格式的宽度为 9,用于使用 9 个字符打印日期值。但由于日期是数字,因此存储变量所需的长度将是 8,而不是 9。
或者以包含单个数字的长度为 1 的字符变量为例。您可以使用 F1.
等宽度仅为 1 的信息格式将其转换为数字。但是它仍然需要 8 个字节来将数字表示为浮点值。 SAS 将强制您使用至少 3 的长度将其存储到数据集中。 (注意在 IBM 大型机上,数字变量的最小长度是 2 而不是 3,因为它们使用不同的浮点表示法。)
什么是变量的持续时间,它与长度有何不同?
为什么当你使用输入函数将一个duration=1的char变量转换为numeric时,新的numeric变量的duration是8?
例如。 一个字符串变量,包含从 0 到 9 的数字(只有 1 个数字),因此它的持续时间 = 1。 转换为数值时,数值变量包含0到9的数字,但duration=8
不确定您在哪里看到 持续时间 与变量定义有关。持续时间是时间的度量。也许你的意思是 width?
当您谈论变量的 宽度 时,您是在谈论将变量显示为字符串需要多少个字符。当您指定格式或信息格式时,您可以在格式名称之后和句点之前包括要使用的 width。如果您从文本文件中读取单个数字,那么您将使用宽度为 1 的信息格式。或者要写入 0 到 9 之间的整数,您可以使用宽度为 1 的格式。但是格式或信息格式中使用的宽度与变量的长度无关。
变量的长度 是 SAS 将用来在数据集中存储变量的字节数。 SAS只有两种类型的变量,浮点数和定长字符串。
对于数字,SAS 使用 64 位浮点数,因此它们占用 8 个字节。因此,您不能定义长度大于 8 的数字。如果将数字变量的长度设置为小于 8,则 SAS 将通过丢弃尾数中的某些位来存储截断值,从而丢失一些精度值。
对于字符变量,长度是它将存储的字节数。使用单字节编码(如 WLATIN1),每个字符将只占用一个字节。但是,如果您使用 UTF-8 编码,那么每个单独的字符可能需要 1 到 4 个字节的存储空间。
例如,DATE9.
格式的宽度为 9,用于使用 9 个字符打印日期值。但由于日期是数字,因此存储变量所需的长度将是 8,而不是 9。
或者以包含单个数字的长度为 1 的字符变量为例。您可以使用 F1.
等宽度仅为 1 的信息格式将其转换为数字。但是它仍然需要 8 个字节来将数字表示为浮点值。 SAS 将强制您使用至少 3 的长度将其存储到数据集中。 (注意在 IBM 大型机上,数字变量的最小长度是 2 而不是 3,因为它们使用不同的浮点表示法。)