我查看了StackOverflow,但我找不到特定于我的问题的解决方案,这涉及将行附加到R数据帧.
我正在初始化一个空的2列数据帧,如下所示.
df = data.frame(x = numeric(), y = character())
Run Code Online (Sandbox Code Playgroud)
然后,我的目标是迭代一个值列表,并在每次迭代中,将值附加到列表的末尾.我从以下代码开始.
for (i in 1:10) {
df$x = rbind(df$x, i)
df$y = rbind(df$y, toString(i))
}
Run Code Online (Sandbox Code Playgroud)
我也试图功能c,append以及merge没有成功.如果您有任何建议,请告诉我.
我想在R中逐行构建一个数据帧.我已经做了一些搜索,我想出的是建议创建一个空列表,保留一个列表索引标量,然后每次添加到列表单行数据帧并将列表索引提前一个.最后,do.call(rbind,)在名单上.
虽然这有效,但看起来非常麻烦.是否有更简单的方法来实现相同的目标?
显然,我指的是我不能使用某些apply函数并明确需要逐行创建数据帧的情况.至少,有没有办法push进入列表的末尾而不是显式跟踪最后使用的索引?
我只是花了一些时间研究data.tableR,并且想知道我可以期待最大性能提升的条件.也许简单的答案是当我有一个大型data.frame并经常在这个data.frame的子集上运行.当我只是加载数据文件和估计模型时,我不能期望太多,但许多[操作会产生差异.这是真的吗,唯一的答案还是我应该考虑什么?什么时候开始重要?10x5,1,000x5,1,000,000x5?
编辑:一些评论表明,这data.table通常更快,同样重要,几乎从不慢.因此,知道何时不使用也是一件好事data.table.
我写了一个函数,它的输出是一个列表.我想把我的函数放到一个循环中,我想将每个迭代的输出(当然是列表)存储到一个更大的列表中.换句话说,这个BIG列表的每个元素也是一个列表.c()没有做我想要的.有没有办法做到这一点?
为了更好地理解我的要求,请考虑以下示例:
iter1 <- list(item1 = 1, item2 = "a")
iter2 <- list(item1 = 1, item2 = "b")
All <- list(iter1 = iter1, iter2 = iter2)
Run Code Online (Sandbox Code Playgroud)
我希望能够在循环中执行类似于上面代码的操作.我怎样才能做到这一点?
谢谢你的帮助,