Я новичок в R, я не знаю, какой правильный способ или концепция имитировать тот же эффект, что и в C ++.Я пытаюсь реализовать следующую концепцию C ++ в R:
struct FooStruct
{
std::string Symbol;
int WindowSize;
};
std::vector<FooStruct> Foo()
{
std::vector<FooStruct> result;
for (int i = 0; i < 2; i++)
{
if (IsConditionOkay())
{
FooStruct tempFoo;
tempFoo.Symbol = "HSI";
tempFoo.WindowSize = 100;
result.push_back(tempFoo);
}
}
return result;
}
Я пытался сделать это в R:
Foo <- function() {
createFooStruct < function() {
me <- list(
Symbol = "?",
WindowSize = 0
)
class(me) <- append(class(me), "FooStruct")
return(me)
}
result <- list()
for (i in 1:2) {
if (IsConditionOkay()) {
tempFoo = createFooStruct()
tempFoo$Symbol = "HSI"
tempFoo$WindowSize = 100
result = append(result, tempFoo)
}
}
return(result)
}
Проблема в том, что когда я делаю dput(result)
,Я получаю list(Symbol = "HSI", WindowSize = 100, Symbol = "HSI", WindowSize = 100)
То, что я ожидаю, это list(list(Symbol = "HSI", WindowSize = 100), list(Symbol = "HSI", WindowSize = 100))
Может быть, я нахожусь в совершенно неверном направлении, возможно, мне следует использовать фрейм данных, чтобы сделать то же самое.Любая помощь или совет хорош.