小编Jav*_*ier的帖子

brew postinstall python(2.7.13):[Errno 13]权限被拒绝

我在OS X 10.11.6上.我今天更新并升级了brew.在那之后,pip没有奏效.在升级过程中看起来好像没有安装.当我完成升级后,我看到了警告:

Warning: The post-install step did not complete successfully You can try again using brew postinstall python
Run Code Online (Sandbox Code Playgroud)

所以我跑了brew postinstall python,然后我遇到了错误:

error: [Errno 13] Permission denied: '/usr/local/lib/python2.7/site-packages/pkg_resources/__init__.py'
Run Code Online (Sandbox Code Playgroud)

这篇文章中他们说:

由于error: could not delete '/usr/local/lib/python2.7/site-packages/pip/__init__.py': Permission denied.手动删除该文件然后再次运行brew postinstall python,安装后步骤未成功完成.

所以我认为修复将是相同的,我手动删除/usr/local/lib/python2.7/site-packages/pkg_resources/__init__.py'所以

$ ls /usr/local/lib/python2.7/site-packages/pkg_resources/
_vendor extern
Run Code Online (Sandbox Code Playgroud)

我又跑brew postinstall python了,但现在我得到了:

...
copying build/lib/easy_install.py -> /usr/local/lib/python2.7/site-packages
copying build/lib/pkg_resources/__init__.py -> /usr/local/lib/python2.7/site-packages/pkg_resources
error: [Errno 13] Permission denied: '/usr/local/lib/python2.7/site-packages/pkg_resources/__init__.py'` 
Run Code Online (Sandbox Code Playgroud)

我通过安装pip找到了"修复" easy_install:

sudo easy_install pip …
Run Code Online (Sandbox Code Playgroud)

python homebrew pip

13
推荐指数
1
解决办法
4896
查看次数

在R中使用data.table时,中位数返回错误

我有以下数据集

> head(DT)
    V1 V2 V3   V4   V5     V6 V7
1:  2  1  2 0.91 0.02 880.00  1
2:  3  2  1 0.02 0.00   2.24  2
3:  1  1  1 0.15 0.01   3.41  3
4:  1  2  1 3.92 0.05 268.67  2
5:  1  1  2 0.10 0.01   1.59  3
6:  0  1  1 1.20 0.04   1.43  3

> sapply(DT, class)
       V1        V2        V3        V4        V5        V6        V7 
"integer" "integer" "integer" "numeric" "numeric" "numeric"  "factor" 
Run Code Online (Sandbox Code Playgroud)

它扩展了数千行.我试图计算由因子变量V7定义的8组中的V1-V6的中值

> levels(DT$V7)
[1] "1" …
Run Code Online (Sandbox Code Playgroud)

r data.table

12
推荐指数
1
解决办法
2111
查看次数

使用R中的正则表达式在某些符号之间提取文本

我有一系列的表达方式,例如:

"<i>the text I need to extract</i></b></a></div>"
Run Code Online (Sandbox Code Playgroud)

我需要在<i></i>"符号" 之间提取文本.这样,结果应该是:

"the text I need to extract"
Run Code Online (Sandbox Code Playgroud)

目前我在R中使用gsub来手动删除所有非文本的符号.但是,我想使用正则表达式来完成这项工作.有谁知道正则表达式提取之间<i></i>

谢谢.

regex r

10
推荐指数
4
解决办法
1万
查看次数

Rcpp警告:"找不到选项的目录'-L/usr/local/Cellar/gfortran/4.8.2/gfortran'"

这个问题与其他一些问题有关,比如RccpArmadilloelement-wise-multiplication.

但是,我的设置是这样的,我不知道我有什么编辑/ simlink使Rccp运行而不给我警告.

我使用最新的R版本在Mac 10.9(小牛队)上.

在一开始,尝试从RCCpvsR得到的以下代码,我收到一个错误:

ld: library not found for -lgfortran
clang: error: linker command failed with exit code 1 (use -v to see invocation)`  
Run Code Online (Sandbox Code Playgroud)

然后,基于RccpArmadillo,我做了以下事情:

# Update FLIBS in ~/.R/Makevars
FLIBS=-L/usr/local/Cellar/gfortran/4.8.2/gfortran
#Re-Install from source
install.packages(c("Rcpp","RcppArmadillo","inline"),type="source")
#Restart R
Run Code Online (Sandbox Code Playgroud)

这是因为我没有/usr/local/Cellar/gfortran/目录所以只是尝试了.事实上,我的所有libgfortran*文件都在这里(在macports目录下):

>ls /opt/local/lib/gcc48/libgfortran.*
/opt/local/lib/gcc48/libgfortran.3.dylib       /opt/local/lib/gcc48/libgfortran.dylib
/opt/local/lib/gcc48/libgfortran.a       /opt/local/lib/gcc48/libgfortran.spec
Run Code Online (Sandbox Code Playgroud)

在这里/opt/local/lib/gcc48/gcc/x86_64-apple-darwin13/4.8.3/libgfortranbegin.a,我没有任何gfortran文件.

然后我再次尝试了代码RccpvsR,令人惊讶的是,它工作了!除了我得到警告的事实:

ld: warning: directory not found for option '-L/usr/local/Cellar/gfortran/4.8.2/gfortran' 
Run Code Online (Sandbox Code Playgroud)

因为它当然不存在,但是该代码创建的函数cosineRcpp运行没有问题.

因此,所有这些,要问是否有人知道我是否必须将libgfortran文件链接 …

r rcpp

9
推荐指数
1
解决办法
4807
查看次数

酸洗numpy数组或列表时的pickle文件大小

我有成千上万的长整数列表(8640).例如:

type(l1)
tuple

len(l1)
2

l1[0][:10]
[0, 31, 23, 0, 0, 0, 0, 0, 0, 0]

l1[1][:10]
[0, 0, 11, 16, 24, 0, 0, 0, 0, 0] 
Run Code Online (Sandbox Code Playgroud)

我正在"挑选"元组,似乎当元组是列表时,pickle文件比numpy数组更轻.我不是python的新手,但绝不是我是专家,我真的不知道如何为不同类型的对象管理内存.我希望numpy数组更轻,但这是我在挑选不同类型的对象时获得的:

#elements in the tuple as a numpy array
l2 = [np.asarray(l1[i]) for i in range(len(l1))]
l2
[array([ 0, 31, 23, ...,  2,  0,  0]), array([ 0,  0, 11, ...,  1,  0,  0])]

#integers in the array are small enough to be saved in two bytes
l3 = [np.asarray(l1[i], dtype='u2') for i in …
Run Code Online (Sandbox Code Playgroud)

python arrays numpy list pickle

8
推荐指数
1
解决办法
4666
查看次数

如何从命令行关闭Rserve

这个问题涉及密切联系,也许也与这个密切的Rserve有关.但是,在后一种情况下,有连接打开,在第一种情况下,答案没有指定如何"杀死"服务器.

重要的是要说我是Rserve的新手,我今天第一次使用它来进行一些温和的R-python交互.我从命令行启动了Rserve:

% R CMD RServe
Run Code Online (Sandbox Code Playgroud)

我虽然在会话结束后关闭了连接,但是当我现在尝试使用新配置重新启动Rserve时,我收到错误:

% ##> SOCK_ERROR: bind error #48(address already in use)
Run Code Online (Sandbox Code Playgroud)

这很清楚.而且ps ax | grep Rserve回报:

% ps ax | grep Rserve
18177   ??  Ss     0:00.33 /Library/Frameworks/R.framework/Resources/bin/Rserve
18634 s006  U+     0:00.00 grep Rserve 
Run Code Online (Sandbox Code Playgroud)

我明白这确实意味着服务器正在运行.我尝试了一些事情:

% R CMD RSclose
 /Library/Frameworks/R.framework/Resources/bin/Rcmd: line 62: exec: RSclose: not found

% R CMD RSshutdown
 /Library/Frameworks/R.framework/Resources/bin/Rcmd: line 62: exec: RSshutdown: not found
Run Code Online (Sandbox Code Playgroud)

最后

% R CMD shutdown
 shutdown: NOT super-user
Run Code Online (Sandbox Code Playgroud)

我想知道,我应该运行:

% sudo R CMD …
Run Code Online (Sandbox Code Playgroud)

r rserve

6
推荐指数
1
解决办法
6330
查看次数

Emacs 24:无法找到`solarized-dark的主题文件.

我使用Emacs 24.4在Mac 10.9.5上

按照这里的说明:https://github.com/sellout/emacs-color-theme-solarized,我下载了emacs-color-theme-solarized目录并将其添加到我的Emacs custom-theme-load-path中.该目录(Emacs已安装Macports)如下所示:

 ls /opt/local/share/emacs/24.4/etc/themes/
 adwaita-theme.el            light-blue-theme.el         tsdh-dark-theme.el
 deeper-blue-theme.el        manoj-dark-theme.el         tsdh-light-theme.el
 dichromacy-theme.el         misterioso-theme.el         wheatgrass-theme.el
 emacs-color-theme-solarized tango-dark-theme.el         whiteboard-theme.el
 leuven-theme.el             tango-theme.el              wombat-theme.el
Run Code Online (Sandbox Code Playgroud)

emacs-color-theme-solarized目录在哪里.然后我添加(load-theme 'solarized-dark t)到我的.emacs文件中,当我重新启动时,emacs我收到错误:Unable to find theme file for 'solarized-dark.

我试图将emacs-color-theme-solarized目录中的所有文件直接移动到/opt/local/share/emacs/24.4/etc/themes/目录中,以便:

ls /opt/local/share/emacs/24.4/etc/themes/
LICENSE                      leuven-theme.el              tango-dark-theme.el
README.md                    light-blue-theme.el          tango-theme.el
adwaita-theme.el             makepkg.sh                   tsdh-dark-theme.el
color-theme-solarized-pkg.el manoj-dark-theme.el          tsdh-light-theme.el
color-theme-solarized.el     misterioso-theme.el          wheatgrass-theme.el
deeper-blue-theme.el         solarized-dark-theme.el      whiteboard-theme.el
dichromacy-theme.el          solarized-definitions.el     wombat-theme.el
emacs-color-theme-solarized  solarized-light-theme.el …
Run Code Online (Sandbox Code Playgroud)

macos emacs themes

5
推荐指数
1
解决办法
7950
查看次数

使用R在字符串中查找重复的模式

我有一个包含表达式的大文本:"aaaahahahahaha that was a good joke". 处理后,我希望它"aaaaahahahaha"消失,或者至少将其改为简单"ha".

目前,我正在使用这个:

gsub('(.+?)\\1', '', str)
Run Code Online (Sandbox Code Playgroud)

当带有模式的字符串位于句子的开头,而不是位于其他任何位置的位置时,此方法有效.所以:

str <- "aaaahahahahaha that was a good joke"
gsub('(.+?)\\1', '', str)
#[1] "ha that was a good joke"`
Run Code Online (Sandbox Code Playgroud)

 str <- "that was aaaahahahahaha a good joke"
 gsub('(.+?)\\1', '', str)
#[1] "that was aaaahahahahaha a good joke"
Run Code Online (Sandbox Code Playgroud)

这个问题可能与此有关:在python中找到重复的模式,但我找不到R中的等价.

我假设是非常简单的,也许我错过了一些微不足道的东西,但由于正则表达不是我的力量,我已经尝试了一些没有用的东西,我想知道是否有人可以帮助我.问题是:如何在R中的字符串中查找和替换重复的模式?

在此先感谢您的时间.

regex string r

5
推荐指数
1
解决办法
6264
查看次数

在IPython模式下更改Emacs"将代码发送到解释器"Cc Cr命令

这里的问题与python-mode中的"发送代码到解释器"(Cc |)命令有关(但不完全相同)和互补.

我在Mac 10.9.5,Emacs 24.4,Python 2.7.8和IPython 2.2.0上工作.

我的想法是更改C-c C-remacs命令以在IPython模式下发送一个区域/代码行C-RET,就像使用R一样.这是因为我通常使用R,但从现在开始,我将使用R和Python(特别是IPython,我非常喜欢),并且 - C-RET在R--中已经发送代码命令似乎对我来说更舒服.

在本问题开头引用的链接中,他们建议在.emacs文件中添加以下行以将C-c |命令更改 为C-c C-r:

(eval-after-load "python"
  '(progn
     (define-key python-mode-map (kbd "C-c C-r") 'python-shell-send-region)))
Run Code Online (Sandbox Code Playgroud)

目前,我的.emacs文件中的python/IPython配置如下所示:

;; Enable Python
(add-to-list 'load-path "/sw/lib/python-mode-1.0")
(load "python-mode")
(setq auto-mode-alist
      (cons '("\\.py$" . python-mode) auto-mode-alist))
(setq interpreter-mode-alist
  (cons '("python" . python-mode)
        interpreter-mode-alist))
(autoload 'python-mode "python-mode" "Python editing mode." t)

;; Ipython. This python-mode takes the Key-map and the menu
(when …
Run Code Online (Sandbox Code Playgroud)

python macos emacs ipython

4
推荐指数
1
解决办法
4469
查看次数

在 R 中将不同长度的命名向量合并到数据帧中的快速方法(将名称信息保留为列名)

我有一个命名向量列表 L 。例如,第一个元素:

> L[[1]]
$event
[1] "EventA"

$time
[1] "1416355303"

$city
[1] "Los Angeles"

$region
[1] "California"

$Locale
[1] "en-GB"
Run Code Online (Sandbox Code Playgroud)

当我unlist列表中的每个元素时,生成的向量如下所示(对于前 3 个元素):

> unlist(L[[1]])
    event          time          city        region        Locale 
 "EventA"  "1416355303" "Los Angeles"  "California"       "en-GB" 

> unlist(L[[2]])
   event         time       Locale 
"EventB" "1416417567"      "en-GB" 

> unlist(L[[3]])
   event properties.time 
 "EventM"    "1416417569" 
Run Code Online (Sandbox Code Playgroud)

我的列表中有超过 50 万个元素,每个元素最多有 42 个特征/名称。我必须将它们合并到一个数据帧中,考虑到它们的名称,并且并非所有它们都具有相同数量的功能或名称(在上面的示例中,V2 没有region和的信息city)。目前,我所做的是循环整个列表:

df1 <- merge(stack(unlist(L[[1]])), stack(unlist(L[[2]])),
        by = "ind", all = TRUE)
suppressWarnings(for (i in 3:length(L)){
    df1 <- merge(df1, …
Run Code Online (Sandbox Code Playgroud)

merge r

3
推荐指数
1
解决办法
2401
查看次数

如何加快在数据表中查找反转行的过程

给定data.tableR 中的 a,我想找到与前一行相反版本的行。例如:

>head(DT)
   V1      V2 
 1 nameA   nameB 
 2 nameA   nameC
 3 nameB   nameA
 4 nameB   nameF
 5 nameN   nameP
 6 nameP   nameN
Run Code Online (Sandbox Code Playgroud)

在 的情况下row 1,代码应返回row 3。在 的情况下row 5,代码应返回row 6。最终,我想删除“反向”行。

真实数据集有 50 万行和 2 列。目前我正在使用这段代码,它完成了这项工作:

require(foreach)
require(doMC)
registerDoMC(4)
rm.idx <- c()
rm.idx <- foreach(i=1:nrow(DT), .combine = 'c')%dopar%{
       if (!(i %in% rm.idx)) which(DT[i,1] == DT[,2] & DT[i,2] == DT[,1])
}      
Run Code Online (Sandbox Code Playgroud)

代码“返回”一个向量 ( rm.idx),其中包含前一行的反向版本的那些行的索引。

但是,对于相对“小”的数据集需要很长时间(超过 30 分钟)。我经常发现 R 有一些调整或一些功能可以更快地完成技巧(或者,我的代码效率不高)。因此,我想知道是否有人知道查找与前一行相反的行的更快方法 …

reverse r data.table

3
推荐指数
1
解决办法
94
查看次数

rpy2 错误:“字符串中无法识别的转义”

我在 R 中有一段代码,我想将其插入到我的 python 代码中。为此,我使用 rpy2。R 代码涉及许多正则表达式,似乎 rpy2 没有正确处理它们,或者可能我没有对它们进行充分的编码。

下面是一段代码的示例,其中一段代码有效,而另一段代码则不起作用:

1)它的工作原理:一个非常简单的removeStopWords函数:

import rpy2.robjects as robjects
from rpy2.robjects.packages import importr

robjects.r('''
library(data.table)
library(tm)

removeStopWords <- function(x) gsub("  ", " ", removeWords(x, stopwords("english")))

''')

In [4]: r_f = robjects.r['removeStopWords']
In [5]: r_f('I want to dance')[0]
Out[5]: 'I want dance'
Run Code Online (Sandbox Code Playgroud)

2)它不起作用:删除前导和尾随空格的也是一个微不足道的函数:

robjects.r('''
library(data.table)
library(tm)

trim <- function (x) gsub("^\\s+|\\s+$", "", x)

''')

 Error: '\s' is an unrecognized escape in character string starting ""^\s"
p = rinterface.parse(string)
Abort
Run Code Online (Sandbox Code Playgroud)

我被 IPython“开除了” …

python regex r rpy2

2
推荐指数
1
解决办法
1786
查看次数

标签 统计

r ×8

python ×4

regex ×3

data.table ×2

emacs ×2

macos ×2

arrays ×1

homebrew ×1

ipython ×1

list ×1

merge ×1

numpy ×1

pickle ×1

pip ×1

rcpp ×1

reverse ×1

rpy2 ×1

rserve ×1

string ×1

themes ×1