我试图创建一个“汇总”数据框,其中包含一些关于我的R项目中的几个对象的高级统计信息。即使完成这个简单的任务,我也遇到了麻烦,我尝试过使用For循环和Apply函数,但没有运气。因此,我发现For循环可能并不是最好的选择,所以我愿意接受任何可以完成工作的解决方案。我有三个对象:text1
text2
和text3
“大字符(矢量)”类(想象我可能会探索这些对象,并将从它们创建一个NLP预测模型)。每个面积> 250 MB(向上1万元的“行”,每个)一次装入R.在R中,从多个对象创建汇总数据框
我的目标:存储在表中object.size()
length()
和max(nchar())
结果我的3个对象。
方法1:使用的应用()函数
问题:我还没有成功地应用于多种功能的单个对象。我明白如何做到简单适用,如lapply(x, mean)
但我在这里不足。
方法2:绑定行使用For循环
我喜欢这个解决办法,因为我几乎知道如何实现它。许多SO用户表示这是一种糟糕的做法,但我缺乏其他想法。
sources <- c("text1", "text2", "text3")
text.summary <- data.frame()
for (i in sources){
text.summary[i ,] <- rbind(i, object.size(get(i)), length(get(i)),
max(nchar(get(i))))
}
问题:这将返回错误data length exceeds size of matrix
- 我知道我可以定义我的数据帧(第2行)的结构,但我已经看到这方面的建议反对这样做,其他的问题太多了反馈。
感谢您帮助我理解完成此操作的正确方法。我知道如果我甚至不知道这个简单问题,我会在做NLP时遇到麻烦,但是R是我第一次进入编程领域。钱币!
这工作非常好,谢谢。我将更多地了解'do.call()'! –