Как создать категориальную переменную на основе непрерывной переменной в Statsoft Statistica - PullRequest
0 голосов
/ 05 ноября 2019

Я делаю некоторый анализ с данными о погоде в Statistica. Одной из переменных является wind direction, которая представляет собой непрерывные переменные в диапазоне от 0 до 360. Теперь я хочу создать новый столбец, который объединяет winddirection в 8 категорий.

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

Мне нужно будет использоватьпользовательская формула для генерации этой новой переменной. Case утверждение было бы идеальным, но это не похоже на вариант в Statistica. Если бы ... иное тоже, но Statistica имеет iif, а не if. Как правильно это сделать?

1 Ответ

0 голосов
/ 06 ноября 2019

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...