小编mlt*_*mlt的帖子

cx_freeze:如何将包文件添加到library.zip中?

我注意到当我尝试为Windows滚动一个zip时,pytz错过了zoneinfo文件夹.现在我有一个我用过的解决方法python setup.py build,即

7z a -xr!*.py* build\exe.win32-2.7\library.zip C:\Python27\Lib\site-packages\pytz
Run Code Online (Sandbox Code Playgroud)

是否有适当的方法来实现这个setup.py或什么?

pytz cx-freeze

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

如何在knitr源文件中使用命令行参数?

我有一个R脚本接受命令行参数,我想将其转换为Rtex或Rnw文件,使用如下命令编写:

knit('myScript.Rtex "-args arg1=a arg2=b"')
Run Code Online (Sandbox Code Playgroud)

但我无法弄清楚如何将我的命令行参数放入myScript.Rtex [用于评估args <- commandArgs()].我试图避免编写可能包含相同信息的临时文件,并由myScript.Rtex读取,因为这似乎不必要的不​​整洁.有人可以提供建议/解决方案吗?

所以,长话短说,如何最好地将信息放入.Rnw文件中与.R文件中处理命令行参数等效(或至少类似)的块中?

编辑:合并以下评论中的代码

我想在计算中使用它们.例如,我有一个R脚本运行

R CMD BATCH --slave --no-save --no-restore "--args input=blah" myScript.R
Run Code Online (Sandbox Code Playgroud)

现在我想传递相同的参数myScript.Rnw,这是一个版本myScript.R,但散布的LaTeX和R代码块.因此,更广泛的问题只是针对编织器报告处理对我有用,我需要一种方法来更改运行报告的数据.我有一个解决方法 - 但我肯定想知道我是否可以将命令行参数传递给我的.Rnw文件中的一个块.现在我不能这样做.

这是我的解决方法:

#!/bin/bash
if [ $# -ne 2 ];
  then ` echo "Usage: $0 refdir cmpdir" exit 1`
fi
export CSPP_VIIRS_EDR_REFERENCE_DIR=$1
export CSPP_VIIRS_EDR_COMPARISON_DIR=$2
script=$(dirname $0)'/viirs_edr_UseR_compare.Rnw'
R --slave --no-save --no-restore -e "require(knitr); knit('$script')" &> viirs_edr_UseR_compare.log
pdflatex viirs_edr_UseR_compare.tex
exit 0
Run Code Online (Sandbox Code Playgroud)

Sys.getenv()在*viirs_edr_UseR_compare.Rnw*中使用来提取我想要传递的参数,例如CSPP_VIIRS_EDR_REFERENCE_DIR.

r knitr

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

如何使用ddply或aggregate返回向量(如fivenum)的函数?

我想使用几列来分割我的数据框,并fivenum在每个组上调用let .

aggregate(Petal.Width ~ Species, iris, function(x) summary(fivenum(x)))
Run Code Online (Sandbox Code Playgroud)

返回的值是一个只有2列的data.frame,第二个是矩阵.如何将其转换为data.frame的普通列?

更新

我希望使用更少的代码,如下所示 fivenum

ddply(iris, .(Species), summarise,
      Min = min(Petal.Width),
      Q1 = quantile(Petal.Width, .25),
      Med = median(Petal.Width),
      Q3 = quantile(Petal.Width, .75),
      Max = max(Petal.Width)
      )
Run Code Online (Sandbox Code Playgroud)

aggregate r plyr

8
推荐指数
2
解决办法
2881
查看次数

如何根据R中的某些因素绘制稀疏(带有间隙)线及其段的颜色?

我有data.frame时间序列.其中NA还有一个因素,我想用它来突出显示一行的不同部分.

flow.mndnr <- function(id, start, end) {
  uri <- sprintf("http://maps1.dnr.state.mn.us/cgi-bin/csg.pl?mode=dump_hydro_data_as_csv&site=%s&startdate=%s&enddate=%s", id, start, end)
  dat <- read.csv(url(uri), colClasses=c(Timestamp="Date"))
  rng <- range(dat$Timestamp)
  d <- data.frame(Timestamp=seq(rng[1], rng[2], by='day'))
  merge(d, dat, all.x=TRUE)
}
dat <- flow.mndnr("28062001", as.Date("2002-04-02"), as.Date("2011-10-05"))
Run Code Online (Sandbox Code Playgroud)

我可以无条件地绘制它

library(lattice)
xyplot(Discharge..cfs. ~ Timestamp, dat, type='l', cex=0.5, auto.key=TRUE)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

但是当我尝试引入因素时,我无法摆脱连接线

xyplot(Discharge..cfs. ~ Timestamp, dat, type='l',
    groups=dat$Discharge..cfs..Quality, cex=0.5, auto.key=TRUE)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

与ggplot2相同

dat$quality <- dat$Discharge..cfs..Quality
ggplot(dat, aes(x=Timestamp, y=Discharge..cfs.)) +
  geom_path(aes(colour=quality)) + theme(legend.position='bottom')
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我试过geom_line没有成功.我读了ggplot2邮件存档,这geom_path是要走的路.但它对我来说并不适用.

PS为什么ggplot2不喜欢名字中的点,所以我不得不使用另一个?

r ggplot2 lattice

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

如何使用CMake获取多配置生成器和基于makefile的目标文件的路径?

我想基于动态方式的目标文件中的所有符号生成模块定义文件(想想GTKMMgendef).

为此,我想add_custom_commandPRE_LINK目标迈出一步.但是,看起来没有简单的方法可以使用CMake获取所有目标文件的路径,这些文件适用于普通的makefile以及Visual Studio等多配置生成器.

现在,我有以下内容

add_custom_command(TARGET tgt PRE_LINK
COMMAND gendef ${CMAKE_CURRENT_BINARY_DIR}/tgt.def $<TARGET_FILE_NAME:tgt> ${CMAKE_CURRENT_BINARY_DIR}/$<$<BOOL:${CMAKE_BUILD_TYPE}>:${CMAKE_FILES_DIRECTORY}>/tgt.dir/${CMAKE_CFG_INTDIR}/*.obj
)
Run Code Online (Sandbox Code Playgroud)

然而,由于我不得不在我看来使用生成器表达,这是非常笨拙和笨重的.有没有更好的方法来实现这种效果,即为每个构建配置调用某个外部程序?

它是一个CMake错误(功能?),对于普通的makefile,所有目标文件都转到CMakeFiles/tgt.dir文件夹,而对于多配置生成器,所有文件都转到CMakeFiles 的兄弟,即tgt.dir/$<CONFIG>?我是否错过了一些简单的变量,可以直接指向正确的位置?

windows cmake

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

Bizzare as.POSIXct行为的时间戳与时间部分下降

我正在努力使用包含POSIXct的colClasses的read.csv将整个时间戳列向下舍入到最新的时间部分.我遇到了一个类似的问题,暗示我有一些约会可能会错过时间.情况并非如此.然而,在将我的矢量平分后,我注意到一些特定的时间戳应该受到指责.这是一个片段.

as.POSIXct(c("2016-03-13 01:00:00", "2016-03-13 02:00:00", "2016-03-13 03:00:00"))
Run Code Online (Sandbox Code Playgroud)

这让我感到满意

[1] "2016-03-13 CST" "2016-03-13 CST" "2016-03-13 CST"
Run Code Online (Sandbox Code Playgroud)

它是在DST过渡期,但不过时间部分在哪里?这是一个错误吗?

> version
               _                           
platform       i386-w64-mingw32            
arch           i386                        
os             mingw32                     
system         i386, mingw32               
status                                     
major          3                           
minor          3.0                         
year           2016                        
month          05                          
day            03                          
svn rev        70573                       
language       R                           
version.string R version 3.3.0 (2016-05-03)
nickname       Supposedly Educational      
Run Code Online (Sandbox Code Playgroud)

更新

全局设置时区时,似乎克服了这个问题,它对我来说仍然看起来像个错误.

更新2

我确认行为是特定于Windows的(特定于平台的错误?)这里是Ubuntu上R 3.2.3的输出

[1] "2016-03-13 01:00:00 CST" "2016-03-13 01:00:00 CST"
[3] "2016-03-13 03:00:00 CDT"
Run Code Online (Sandbox Code Playgroud)

更新3

有一个已知的未经证实的错误#16852.

更新4

除非我遗漏了某些内容,否则我在%S和%OS之间的情况没有差异,如评论中所述.

> strptime(c("2016-03-13 …
Run Code Online (Sandbox Code Playgroud)

r posixct

5
推荐指数
0
解决办法
174
查看次数

如何使用ifort"重新导出"在Fortran模块中重载的现有绑定(C)函数?

我对使用gfortran的构造非常满意,直到我用ifort尝试它.虽然我还没有看到它清楚地记录下来.我只是尝试了它并且它有效.我很好奇,但我怎么能调整以下样本,以便ifort 11.1可以咀嚼它.

module A
  use iso_c_binding
  implicit none

  interface
     function foo(x) bind(C, name="strlen")
       use, intrinsic :: iso_c_binding
       character(c_char), intent(in) :: x
       integer(c_size_t) :: foo
     end function foo
  end interface

end module A

module B
  use A
!  use A, foo0 => foo
  implicit none

  interface foo
     module procedure foo1
     procedure foo
  end interface foo

contains

  function foo1(x)
    real, intent(in) :: x
    real :: foo1
    foo1 = 2. * x
  end function foo1

end module B

program C
  use B
  implicit …
Run Code Online (Sandbox Code Playgroud)

fortran fortran-iso-c-binding intel-fortran

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

R中多项式的拟合值:参考类别的系数?

我正在使用nnet包中的函数multinom来运行多项逻辑回归.

在多项逻辑回归中,据我所知,系数是响应概率与参考响应概率之比的对数变化(即ln(P(i)/ P(r))= B 1 + B 2*X ...其中i是一个响应类别,r是参考类别,X是一些预测器).

但是,拟合(multinom(...))会为每个类别生成估计值,甚至是参考类别r.

编辑示例:

set.seed(1)
library(nnet)
DF <- data.frame(X = as.numeric(rnorm(30)), 
                 Y = factor(sample(letters[1:5],30, replace=TRUE)))
DF$Y<-relevel(DF$Y, ref="a") #ensure a is the reference category
model <- multinom(Y ~ X, data = DF)
coef(model)
#  (Intercept)           X
#b   0.1756835  0.55915795
#c  -0.2513414 -0.31274745
#d   0.1389806 -0.12257963
#e  -0.4034968  0.06814379

head(fitted(model))
#          a         b          c         d         e
#1 0.2125982 0.2110692 0.18316042 0.2542913 0.1388810
#2 0.2101165 0.1041655 0.26694618 0.2926508 …
Run Code Online (Sandbox Code Playgroud)

r multinomial

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