我是R的新手,我不知道模拟与C ++相同效果的正确方法或概念是什么。我正在尝试在R中实现以下C ++概念:
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))
可能是我的方向完全错误,可能是我应该使用数据帧来做同样的事情。任何帮助或建议都是好的。