Emacs有时候会很烦人,它会在迷你缓冲区中发出太多信息.例如,当我跑步时M-x gnus,它会告诉我
You can run `gnus' with <menu-bar><tools><gnus>
Run Code Online (Sandbox Code Playgroud)
当某个命令有一个键映射时,也会发生这种情况.我不需要它们,但我不知道如何删除.
有任何想法吗?
谢谢.
我有一些具有足够高的维度(14)的数据集,一次性成对绘图是痛苦的.在那种情况下,我希望能够选择他们所在的数据帧的子集,但我只知道如何按编号对列进行寻址.回读代码时,这很烦人且不清楚:
partimat(MARKER ~ ., trim_data11[,c(1:5,NCOL(trim_data11))],method="qda")
Run Code Online (Sandbox Code Playgroud)
我想做的是这样的事情,这是行不通的:
partimat(MARKER ~ ., trim_data11$(c(AF3,F7,P8,O1,O2,MARKER)),method="qda")
Run Code Online (Sandbox Code Playgroud)
有没有办法做到这一点?
是否存在使用data.table分组计算滚动统计信息的现有习惯用法?
例如,给出以下代码:
DT = data.table(x=rep(c("a","b","c"),each=2), y=c(1,3), v=1:6)
setkey(DT, y)
stat.ror <- DT[,rollapply(v, width=1, by=1, mean, na.rm=TRUE), by=y];
Run Code Online (Sandbox Code Playgroud)
如果还没有,那最好的方法是什么?
我正在学习用R做我的第一次单元测试,并且我在R Markdown文件中编写我的代码,以便简单地提供简短的研究报告.同时,我想测试我在这些文件中使用的函数,以确保结果是合理的.
问题在于:R Markdown文件用于编织HTML编织器,而不是RUnit测试工具.如果我想在测试代码中加载一个函数,我有几个选择:
是否有更明智的方法可以避免这些方法的缺点?
什么是最简洁,最快速,最数字稳定,最R-idiomatic方式在R中进行左右矩阵划分?我明白左派inv(A)*B通常都是用solve(a,b),但怎么样B*inv(A)?真的是最好的计算方法t(solve(t(A),t(B)))吗?
我认为R. Buckminster Fuller的Dymaxion地图是有史以来设计的最美丽的地图投影之一:

我正在使用mapproj中的整洁投影,这与ggplot很有效,但看起来并没有任何预测.有一个很好的ggplot方法来做到这一点?
在 RStudio 中打开或创建项目时,工作目录会自动更改为项目的工作目录。但是,如果您要保存文件或在其他子目录中工作,那么更改工作目录通常会很方便。在每个脚本中管理它可能会很痛苦。
是否有一个始终指向项目根目录的变量(也可以由“Knit HTML”按钮分叉的会话读取),可以用来使这更容易?
“Knit HTML”按钮出现将工作目录设置为 R Markdown 文件的工作目录。例如,如果您在 中调用project.root了一个变量./Rprofile,并且在打开此脚本的情况下单击“Knit HTML”,
```{r}
getwd()
source('./Rprofile')
setwd(project.root)
getwd()
```
Run Code Online (Sandbox Code Playgroud)
第一个和最后一个结果将是脚本目录,其余的将抛出错误。
我写的一个函数,用于扩展重复多变量时间序列数据的长表,用于输入分类器函数,即使对于简单的测试数据,也会导致错误的结果,但我找不到问题.
为了获得大多数R惯用语的速度和易用性,我保留了一系列多变量时间序列的多次时间序列的重复试验.
> this.data
Time Trial Class Channel Value
1: -100.00000 1 -1 V1 0.4551513
2: -96.07843 2 -1 V1 0.8241555
3: -92.15686 3 -1 V1 0.7667328
4: -88.23529 4 -1 V1 0.7475106
5: -84.31373 5 -1 V1 0.9810273
---
204796: 884.31373 196 1 V4 50.2642220
204797: 888.23529 197 1 V4 50.5747661
204798: 892.15686 198 1 V4 50.5749421
204799: 896.07843 199 1 V4 50.1988299
204800: 900.00000 200 1 V4 50.7756015
Run Code Online (Sandbox Code Playgroud)
具体地说,上述数据具有一个Time具有从0到900的256个唯一编号的列,每个编号Channel对于每个编号重复Trial.类似地,每个Channel …
在Rust文档中,有一个关于并发的学习练习,使用以下代码:
let philosophers = vec![
Philosopher::new("Judith Butler"),
Philosopher::new("Gilles Deleuze"),
Philosopher::new("Karl Marx"),
Philosopher::new("Emma Goldman"),
Philosopher::new("Michel Foucault"),
];
let handles: Vec<_> = philosophers.into_iter().map(|p| {
thread::spawn(move || {
p.eat();
})
}).collect();
for h in handles {
h.join().unwrap();
}
Run Code Online (Sandbox Code Playgroud)
他们简要地解释了它的每一个部分,但它们没有解释为什么move在thread::spawn()调用中似乎有一个指令和一个逻辑OR :
这个闭包需要一个额外的注释,移动,以指示闭包将取得它捕获的值的所有权.
但是,这个"注释"看起来与其他注释不同,例如类型.这里到底发生了什么,为什么?(搜索该代码片段似乎并没有指向任何地方,只有相同的文档和其他博客文章关于其他类型的moveing.)
我正在编写一个函数,它应该采用几个向量并生成它们的笛卡尔积(它们的所有对组合)作为行主要顺序的向量.换句话说,如果我有
let x_coords = vec![1, 2, 3];
let y_coords = vec![4, 5, 6];
Run Code Online (Sandbox Code Playgroud)
我想生产
vec![ [1,4], [1,5], [1,6], [2,4], [2,5], [2,6], [3,4], [3,5], [3,6] ]
Run Code Online (Sandbox Code Playgroud)
这似乎是一个完美的工作.flat_map():
fn main() {
let x_coords = vec![1, 2, 3];
let y_coords = vec![4, 5, 6];
let coord_vec: Vec<[isize; 2]> =
x_coords.iter().map(|&x_coord| {
y_coords.iter().map(|&y_coord| {
[x_coord, y_coord]
})
}).flat_map(|s| s).collect();
// Expecting to get: vec![ [1,4], [1,5], [1,6], [2,4], [2,5], [2,6], [3,4], [3,5], [3,6] ]
println!("{:?}", &coord_vec);
}
Run Code Online (Sandbox Code Playgroud)
但这不起作用,因为&x_coord活得不够久.根据编译器,它最终在y_coords地图内部,然后永远不会让它退出. …
r ×7
data.table ×2
rust ×2
concurrency ×1
dataframe ×1
dot-emacs ×1
elisp ×1
emacs ×1
emacs24 ×1
geo ×1
ggplot2 ×1
gis ×1
iterator ×1
lifetime ×1
matrix ×1
minibuffer ×1
nested-loops ×1
numeric ×1
projection ×1
reshape ×1
rstudio ×1
syntax ×1
unit-testing ×1