我正在处理Rmarkdown文档,并被告知严格限制最大列数(空白列)为100.在文档的代码块中,我使用了许多不同的包,其中包括 data.表格.
I'm working on a Rmarkdown document, and was told to strictly limit to a maximum number of columns (margin column) of 100. In the document's code chunks I used many different packages, among which is data.table.
为了遵守限制,我可以将链条(甚至是长命令)分开,例如:
In order to comply with the limit I can split chains (and even long commands) like:
p <- ggplot(foo,aes(bar,foo2))+ geom_line()+ stat_smooth() bar <- sum(long_variable_name_here, na.rm=TRUE) foo <- bar %>% group_by(var) %>% summarize(var2=sum(foo2))但是我无法拆分 data.table 链,因为它会产生错误.我该如何实现这样的目标?
but I can't split a data.table chain, as it produces an error. How can I achieve something like this?
bar <- foo[,.(long_name_here=sum(foo2)),by=var] [order(-long_name_here)]最后一行当然会导致错误.谢谢!
Last line, of course, causes an error. Thanks!
推荐答案您必须在每行的 [和] 之间给出一个返回值.如何将 data.table 代码划分为几行的示例:
You have to give a return between the [ and ] of each line. An example for how to divide your data.table code over several lines:
bar <- foo[, .(long_name_here = sum(foo2)), by = var ][order(-long_name_here)]您还可以在每个逗号之前/之后给一个回报.逗号前有返回值的示例(我的偏爱):
You can also give a return before / after each comma. An example with a return before the comma (my preference):
bar <- foo[, .(long_name_here = sum(foo2)) , by = var ][order(-long_name_here) , long_name_2 := long_name_here * 10]有关扩展示例,请参见此答案
See this answer for an extended example
更多推荐
将data.table链分为两行代码以提高可读性
发布评论