Условное преобразование для файла XDF

У меня есть файл XDF в Microsoft R. Это несколько упрощенная версия моей проблемы. В нем есть 2 столбца, один столбец является категориальным и содержит индексы, такие как «1», «2», «3» и т. д. вплоть до «10». Второй столбец числовой. То, что я хотел бы сделать, это создать 3 столбца, то есть преобразование второго столбца, но обусловленное первым столбцом. то есть что-то вроде

if col1 == '1' then col3 = col2*0.50 else if col2 == '2' then col3 = col2*0.80

и так далее.

Я знаю, что вы можете делать преобразования непосредственно в R, но я не знаю, как сделать что-то подобное.


person Thomas Moore    schedule 15.07.2017    source источник


Ответы (1)


Это работает?

MyDataset <- RxXdfData("./path/dataset.xdf") #the dataset you are using

# replace transFormedCol with the name of the col you want to use 
rxDataStep(inData = MyDataset,
           outFile = MyDataset,
           transforms = list(
             transFormedCol = ifelse(col1 == '1',col2*0.5,
                                     ifelse(col2 == '2', col2*0.8))), #etc...
           overwrite = TRUE
           )
person Serban Dragne    schedule 25.08.2017