我对使用.SD和不太清楚by.
例如,做下面的代码片段意思是:"改变所有的列DT到的因素,除了A与B?" 它还在data.table手册中说:" .SD指data.table每个组的子集(不包括分组列)" - 所以列A和B排除?
DT = DT[ ,lapply(.SD, as.factor), by=.(A,B)]
Run Code Online (Sandbox Code Playgroud)
但是,我也读过,by当你进行聚合时,这意味着在SQL中使用'group by'.例如,如果我想colsum在除了所有列之外总结(比如在SQL中)A并且B我仍然使用类似的东西吗?或者在这种情况下,下面的代码是否意味着在列A和B?中取总和和值组?(A,B在SQL中使用sum和group by )
DT[,lapply(.SD,sum),by=.(A,B)]
Run Code Online (Sandbox Code Playgroud)
然后我如何做colsum除了A和之外的所有列的简单B?
我有一个14GB的data.txt文件.我通过读取前1M行来比较速度fread和速度read.table.它看起来好fread得慢,虽然它不应该是.显示百分比计数需要一些时间.
可能是什么原因?我认为它应该超级快......我正在使用Windows操作系统计算机.
我有一个大表(约100M行和28列),格式如下:
ID A B C
1 2 0 1
2 0 1 0
3 0 1 2
4 1 0 0
Run Code Online (Sandbox Code Playgroud)
ID以外的列(唯一)给出了每种类型的计数(即A,B,C).我想把它转换成下面的长形式.
ID Type
1 A
1 A
1 C
2 B
3 B
3 C
3 C
4 A
Run Code Online (Sandbox Code Playgroud)
考虑到我的数据集的大小,我也想使用数据表(而不是数据帧).我检查reshape2了R关于长形和短形之间转换的包,但是我不清楚melt函数是否允许我以如上所述的简短形式计数.
有关如何以快速有效的方式R使用reshape2和/或data.table?
对于 CART 模型,caret 似乎只提供复杂性参数的调整。有没有办法调整其他参数,例如 minbucket?