我注意到当我尝试为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
或什么?
我有一个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.
我想使用几列来分割我的数据框,并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) 我有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不喜欢名字中的点,所以我不得不使用另一个?
我想基于动态方式的目标文件中的所有符号生成模块定义文件(想想GTKMM的gendef).
为此,我想add_custom_command
为PRE_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>
?我是否错过了一些简单的变量,可以直接指向正确的位置?
我正在努力使用包含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) 我对使用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) 我正在使用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)