我在R中有一些生成多页pdf文件的代码:
pdf("myplot.pdf", width=8.5, height=5)
My.Plot(my.data, var1, var2)
My.Plot(my.data, var3, var2)
My.Plot(my.data, var4, var2)
dev.off()
Run Code Online (Sandbox Code Playgroud)
My.Plot()只是一个解析必要数据然后使用ggplot创建图形的函数
以上工作就好了.但是,当我将此代码放在函数中时,没有生成绘图,并且无法读取/打开输出PDF.
generate.PDF <- function(my.data) {
pdf("myplot.pdf", width=8.5, height=5)
My.Plot(my.data, var1, var2)
My.Plot(my.data, var3, var2)
My.Plot(my.data, var4, var2)
dev.off()
}
Run Code Online (Sandbox Code Playgroud) 在给定的data.table中,选择列V1的语法是什么,其中V2 = max(V2),按V3分组.
例如:在mtcars数据集中,我想找出与观察相对应的hp是多少(max),由cyl分组
这是我的不合理的解决方案,使用其中:
mtcars <- data.table(mtcars)
mtcars[which(mtcars$disp %in% mtcars[, max(disp), by = .(cyl)]$V1), .(cyl,hp)]
cyl hp
1: 6 110
2: 4 62
3: 8 205
Run Code Online (Sandbox Code Playgroud)
是否有更"数据表"的方式来实现相同的结果?
我正在尝试构建一个搜索引擎的Shiny应用程序.我根据搜索关键字返回data.table:
DT <- data.table(field = c("A_B_C","A_C_D","A_D_A","B_A_D","B_C_F","B_D_K"))
DT[field %like% "A|B"]
Run Code Online (Sandbox Code Playgroud)
以上内容返回包含A或B的所有字段.如果我想要A和B:
DT[field %like% "A"][field %like% "B"]
Run Code Online (Sandbox Code Playgroud)
是否有一种语法允许我对任意数量的关键字执行上述操作.就像是:
DT[field %like% "A & B & C"]
Run Code Online (Sandbox Code Playgroud)