如何在Statsoft Statistica中基于连续变量创建分类变量

如何在Statsoft Statistica中基于连续变量创建分类变量,statistica,Statistica,我正在用统计学中的天气数据做一些分析。其中一个变量是风向,它是一个连续变量,范围从0到360。现在我想创建一个新列,将winddirection划分为8个类别 0-45: 'E' 45-90: 'NE' 90-135: 'N' 我需要使用自定义公式来生成这个新变量Case语句将是理想的,但在Statistica中这似乎不是一个选项。If..else也可以,但Statistica有iif而不是纯If。正确的方法是什么?IDK您对宏的熟悉程度如何,但是下面的SVB宏可以重新编码列。您必须提供源列和

我正在用统计学中的天气数据做一些分析。其中一个变量是
风向
,它是一个连续变量,范围从0到360。现在我想创建一个新列,将
winddirection
划分为8个类别

0-45: 'E'
45-90: 'NE'
90-135: 'N'

我需要使用自定义公式来生成这个新变量
Case
语句将是理想的,但在
Statistica
中这似乎不是一个选项。If..else也可以,但Statistica有
iif
而不是纯
If
。正确的方法是什么?

IDK您对宏的熟悉程度如何,但是下面的SVB宏可以重新编码列。您必须提供源列和目标列。此宏假定震源的值为0-359度

'#Language "WWB-COM"
Option Base 1
Option Explicit

Sub Main

    Dim ss As Spreadsheet
    Set ss = ActiveSpreadsheet

    Dim SourceCol As Long
    Dim DestCol As Long

    SourceCol = 1
    DestCol = 3


    Dim MDValue
    MDValue = Option.Spreadsheet.DefaultMissingDataValue

    Dim i
    For i = 1 To ss.NumberOfCases

        Dim TheValue, NewValue
        TheValue = ss.Value(i, SourceCol)
        NewValue = MDValue


        If TheValue < 22.5 Then
            NewValue = "E"
        ElseIf TheValue < 67.5 Then
            NewValue = "NE"
        ElseIf TheValue < 112.5 Then
            NewValue = "N"
        ElseIf TheValue < 157.5 Then
            NewValue = "NW"
        ElseIf TheValue < 202.5 Then
            NewValue = "W"
        ElseIf TheValue < 247.5 Then
            NewValue = "SW"
        ElseIf TheValue < 292.5 Then
            NewValue = "S"
        ElseIf TheValue < 337.5 Then
            NewValue = "SE"
        Else
            NewValue = "E"
        End If

        ss.Value(i, DestCol) = NewValue
    Next

End Sub
”#语言“WWB-COM”
选项基数1
选项显式
副总管
将ss设置为电子表格
设置ss=ActiveSpreadsheet
长得一样暗
暗淡如长
SourceCol=1
DestCol=3
暗淡MDValue
MDValue=Option.Spreadsheet.DefaultMissingDataValue
昏暗的我
对于i=1至ss.NumberOfCases
使值变暗,新值
TheValue=ss.Value(i,SourceCol)
NewValue=MDValue
如果该值小于22.5,则
NewValue=“E”
否则,如果值<67.5
NewValue=“NE”
否则,如果值<112.5
NewValue=“N”
否则,如果值小于157.5,则
NewValue=“NW”
否则,如果值<202.5
NewValue=“W”
否则,如果该值小于247.5
NewValue=“SW”
否则,如果该值小于292.5
NewValue=“S”
否则,如果该值小于337.5
NewValue=“SE”
其他的
NewValue=“E”
如果结束
ss.值(i,DestCol)=新值
下一个
端接头

您还可以使用“重新编码”对话框,该对话框有256个条件可用于重新编码变量。