Поставщик типов F # R - Anova: формула с коэффициентом и ошибкой - PullRequest
0 голосов
/ 27 мая 2020

Как мне написать формулу с большим количеством факторов уровня и ошибок (мне удалось сделать anova без дополнительного фактора уровня)?

В R я бы написал что-то вроде этого

factor=as.factor(table$luck)
anova=aov(MeanRT ~ factor + Error(Person) , data=table)

В F # у меня есть это пока:

let factor = R.as_factor(table.["Luck"]).AsFactor()

let df=
    (namedParams [
            "Luck", box (luck|> List.map (fun (a,b,c) -> a));
            "Person", box (luck |> List.map (fun (a,b,c) -> b));
            "MeanRT", box (luck |> List.map (fun (a,b,c) -> c));
            "glFactor", box glFactor;
            ]
        |> R.data_frame).AsDataFrame()

let anovaLuck = R.lm(formula = "MeanRT~factor + Error(Person)", data= df, paramArray = [|glFactor|] )

Даже без части перед 'Error' я не получаю ту же Anova-Table, что и в R.

С ошибкой (человек) я получаю следующее исключение

RDotNet.EvaluationException: Error in Error(Person) : could not find function "Error"

   at RDotNet.REngine.Parse(String statement, StringBuilder incompleteStatement)
   at RDotNet.REngine.<Defer>d__46.MoveNext()
   at System.Linq.Enumerable.LastOrDefault[TSource](IEnumerable`1 source)
   at RDotNet.REngine.Evaluate(String statement)
   at RProvider.Internal.Logging.logWithOutput[a](CharacterDeviceInterceptor characterDevice, FSharpFunc`2 f) in C:\FSharp\RProvider\src\RProvider\Logging.fs:line 65
   at <StartupCode$FSI_0069>.$FSI_0069.main@() in C:\...\Program.fsx:line 614
...