我不能在里面使用switch,mutate因为它返回的是整个向量而不仅仅是行.作为一个黑客,我正在使用:
pick <- function(x, v1, v2, v3, v4) {
ifelse(x == 1, v1,
ifelse(x == 2, v2,
ifelse(x == 3, v3,
ifelse(x == 4, v4, NA))))
}
Run Code Online (Sandbox Code Playgroud)
这在内部工作mutate,现在很好,因为我通常选择4件事,但这可能会改变.你能推荐另一种选择吗?
例如:
library(dplyr)
df.faithful <- tbl_df(faithful)
df.faithful$x <- sample(1:4, 272, rep=TRUE)
df.faithful$y1 <- rnorm(n=272, mean=7, sd=2)
df.faithful$y2 <- rnorm(n=272, mean=5, sd=2)
df.faithful$y3 <- rnorm(n=272, mean=7, sd=1)
df.faithful$y4 <- rnorm(n=272, mean=5, sd=1)
Run Code Online (Sandbox Code Playgroud)
使用pick:
mutate(df.faithful, y = pick(x, y1, y2, y3, y4))
Source: local data frame [272 x 8] …Run Code Online (Sandbox Code Playgroud) 给定根绝对目录路径.如何生成其下方所有路径的树状图对象,以便我可以使用R可视化目录树?
假设以下调用返回以下叶节点.
list.files(path, full.names = TRUE, recursive = TRUE)
root/a/some/file.R
root/a/another/file.R
root/a/another/cool/file.R
root/b/some/data.csv
root/b/more/data.csv
Run Code Online (Sandbox Code Playgroud)
我想在R中创建一个类似unix tree程序输出的图:
root
??? a
? ??? another
? ? ??? cool
? ? ? ??? file.R
? ? ??? file.R
? ??? some
? ??? file.R
??? b
??? more
? ??? data.csv
??? some
??? data.csv
Run Code Online (Sandbox Code Playgroud)
如果解决方案涉及将文件系统树分解为两个,那将特别有用data.frame:
然后从这两个data.frames 构建树形图对象.
我在为自己依赖于pcre.h的程序安装依赖项时遇到问题.我把它安装到/ opt/local/include,但C编译器没有看到它,因此给了我:
错误:pcre.h:没有这样的文件或目录
我通过编写一个试图包含它的hello world程序来证实这一点:
#include <pcre.h>
#include <stdio.h>
int main(void)
{
printf("hello, world\n");
return 0;
}
Run Code Online (Sandbox Code Playgroud)
除非我指定路径,否则这也会产生错误</opt/local/include/pcre.h>.
我希望C编译器默认找到它,但我不知道它在哪里配置.选项卡完成没有显示任何HEADER_PATH环境变量,我找不到类似于XCode的任何类似的东西.然而,我正在使用Mac OSX Snow Leopard来解决这个问题.
我总是打开一个eshell并执行find-file new-file-name,因为helm总是为我提供候选人和一百万个看起来不像我想要的基本功能的选项:强制文件被称为我的文件类型.例如,我想在一个包含另一个org文件的目录中使用名为mto.org的组织文档.

如何强制helm创建名为I typed的文件,这样我可以通过避免打开eshell并添加一个小的,但(希望很容易)可以避免我的注意力中断来节省10秒?
我让Emacs工作得很好,然后我重新启动了我的电脑.现在这段代码阻止我加载我的init文件:
(require 'ob-clojure)
(org-babel-do-load-languages
'org-babel-load-languages
'((emacs-lisp . nil)
(R . t)
(python . t)
(js . t)
(scheme . t)
(C . t)
(clojure . t)
(lilypond . t)
(octave . t)))
Run Code Online (Sandbox Code Playgroud)
我不知道为什么会这样.在我重新开始之前,我已经让巴贝尔与R一起工作.现在我收到消息:
字节码:符号作为变量的值为void:org-babel-tangle-lang-exts
我在目录中提到org-babel的任何内容,只有上面的表达式出现了.再加上我摆脱它时我的其他init文件代码加载的事实让我觉得这个代码就是问题所在.但是为什么org-mode指的是我没有的功能呢?
运行emacs --debug-init给出:
调试器输入 - Lisp错误:( void-function org-babel-do-load-languages)(org-babel-do-load-languages)(引用org-babel-load-languages)(引用(......) ...... ...... ...... ......)))eval-buffer(#load <2 >> nil"/home/kca/.emacs.d/init-org.el"nil t); 读取缓冲区位置3080加载代码转换("/ home/kca/.emacs.d/init-org.el""/ home/kca /.emacs.d/init-org.el"nil nil) load("init-org")eval-buffer(#nil"/home/kca/.emacs.d/init.el"nil t); 读取缓冲区位置1464加载代码转换("/ home/kca/.emacs.d/init.el""/ home/kca /.emacs.d/init.el"tt)加载("/ home /kca/.emacs.d/init"tt)#[nil"\ 205\264
我试图检查是否正在加载正确的组织模式版本:
M-x load-library
org
M-x org-version
=> Org-mode version 7.7
Run Code Online (Sandbox Code Playgroud)
以下是init.el中加载它的代码:
(add-to-list 'load-path (concat conf-dir "org-7.7/lisp")) …Run Code Online (Sandbox Code Playgroud) 我想知道我的网络硬件.
lspci | grep -i net
Run Code Online (Sandbox Code Playgroud)
从终端,此命令提供以下输出:
00:19.0以太网控制器:Intel公司82577LM千兆网络连接(rev 06)02:00.0网络控制器:Intel Corporation Centrino Advanced-N 6200(rev 35)
但是当我尝试从org-mode通过babel源块运行它时,我没有输出.
#+BEGIN_SRC sh
lspci | grep -i net
#+END_SRC
#+RESULTS:
Run Code Online (Sandbox Code Playgroud)
是什么赋予了?如何从终端获得相同的输出?
我定义了一个true?与球拍/列表中的计数一起使用的函数.
(define (true? expr)
(and (boolean? expr) expr #t))
Run Code Online (Sandbox Code Playgroud)
我注意到我可以提供数字参数,我的功能很乐意返回#f.
> (true? 6)
#f
Run Code Online (Sandbox Code Playgroud)
所以,我想我会探索使用球拍合约来使非布尔参数在合同违规中返回错误.所以我把这个代码放在我的文件的顶部:
(provide (contract-out
[true? (-> boolean? boolean?)]))
Run Code Online (Sandbox Code Playgroud)
但是,在添加合同后,我仍然在球拍REPL中获得与上述相同的行为.我不明白这是怎么回事.我错过了什么?
我想设置Alt_L为META(即在emacs中的M-),但是Alt_R作为ALT.如何修改.Xmodmap和/或.emacs实现此目的?
我正在平衡R的几个版本,并希望根据哪个R和我正在使用的操作系统来更改我的R库.因此,我想坚持使用基本R功能.
我正在阅读此页面以查看基本R的等价stringr::str_extract物:
http://stat545.com/block022_regular-expression.html
它建议我可以复制这个功能grep.但是,grep如果匹配,我还没有做更多的事情而不是返回整个字符串.这可能是grep单独的,还是我需要将它与另一个功能结合起来?在我的情况下,我试图区分CentOS版本6和7.
grep(pattern = "release ([0-9]+)", x = readLines("/etc/system-release"), value = TRUE)
Run Code Online (Sandbox Code Playgroud) 我使用'rPython'包来调用R中的python,但是我无法让R引用我的python的虚拟环境.
在R中,我尝试过使用
system('. /home/username/Documents/myenv/env/bin/activate')
Run Code Online (Sandbox Code Playgroud)
但运行上面我的python库路径后没有改变(我检查通过python.exec(print sys.path)).我跑的时候
python.exec('import nltk')
Run Code Online (Sandbox Code Playgroud)
我被抛出错误:
python.exec中的错误("import nltk"):没有名为nltk的模块
虽然它存在于我的虚拟环境中.
我在Ubuntu 13.04上使用R 3.0.2,Python 2.7.4.
另外,我知道我可以通过使用来改变R中的python库路径
python.exec("sys.path='\your\path'")
Run Code Online (Sandbox Code Playgroud)
但是我不想在安装新的python包时一遍又一遍地手动输入.
提前致谢!
emacs ×4
r ×4
org-babel ×2
org-mode ×2
c ×1
dendrogram ×1
dplyr ×1
emacs-helm ×1
macos ×1
python ×1
racket ×1
regex ×1
virtualenv ×1
x11 ×1
xmodmap ×1