小编Ken*_*ams的帖子

Git stash未缓存:如何收起所有未分级的变化?

假设在由git版本化的项目中进行了两组更改.一套是上演的,另一套则没有.

我想通过在此状态下运行我的项目(在提交之前)来重新检查暂存的更改.什么是简单的方法来收起所有未分阶段的变化并且只留下上演?所以我需要从我的项目中消失的非分段更改,但是要存储在某个地方以便进一步工作.

这听起来非常像git stash命令.但是git stash会将未分阶段和分阶段的更改从我的项目中移除.我找不到类似的东西git stash uncached.

git git-stash

72
推荐指数
6
解决办法
2万
查看次数

Python库路径

在ruby中,库路径是$:在perl中提供的@INC- 如何在导入时获取Python搜索模块的路径列表?

python

65
推荐指数
4
解决办法
16万
查看次数

导出不带col.names的CSV

我需要将其data.frame导出并导出为CSV文件(或其他内容,但CSV似乎是最简单的格式),因此我可以将其导入SQLite数据库.

但是,看起来write.csv()我需要写一个标题行,而SQLite的.import命令要求我没有标题行.所以这有点不匹配.

如果我尝试省略标题行,会发生以下情况:

> write.csv(mydf, "/tmp/mydf.csv", row.names=F, col.names=F)
Warning message:
In write.csv(mydf, "/tmp/mydf.csv", row.names = F, col.names = F) :
  attempt to set 'col.names' ignored
Run Code Online (Sandbox Code Playgroud)

我想知道为什么它的执行,在第一个地方-手册上说"这些包装是故意不灵活.它们的设计,以确保正确的约定是用来写一个有效文件,试图改变append,col.names,sep,dec或者qmethod被忽略,警告." 但我知道规范或其他需要列名的任何内容 - 事实上,大多数工具(Excel等)都没有特别对待它们.

csv sqlite r

56
推荐指数
3
解决办法
4万
查看次数

提取stat_smooth线拟合的方法

有没有办法提取stat_smooth返回的拟合线的值?

我使用的代码如下所示:

p <- ggplot(df1, aes(x=Days, y= Qty,group=Category,color=Category))
p <- p + stat_smooth(method=glm, fullrange=TRUE)+ geom_point())
Run Code Online (Sandbox Code Playgroud)

这个新用户会非常感谢任何指导.

r stat ggplot2

51
推荐指数
5
解决办法
3万
查看次数

系统调用而不在R中调用shell

在基R,也有用于调用系统命令3个主要机制:system,system2,及shell(这似乎共享一个带手册页system).它们都没有提供一种非常可靠的跨平台方式来运行系统命令而没有shell阻塞 - 如果shell介入,我们需要担心shell注入攻击,关于确保引用是正确的,等等.

有些语言可以直接访问C级execvp函数(例如Perl的system PROGRAM LIST机制),当我想确保数组中的字符串正是子进程在其参数中看到的字符串时,这非常有用,而不需要查看适用于嵌入式空格,引号等的引用例程,并担心它们在不同平台和不同版本的shell上会做什么.

R中是否有类似的无shell系统调用机制,可能在某个CRAN包中?和/或是否有任何兴趣创建这样一个机制,如果还没有?

r system

35
推荐指数
1
解决办法
791
查看次数

在组织模式中转义管道字符

我在Emacs org-mode中有一个表,内容是正则表达式.我似乎无法弄清楚如何转义文本管道字符(|),它是正则表达式的一部分,因此它被解释为表格单元格分隔符.有人能给我一些帮助吗?谢谢.

更新:我也在寻找斜杠(/)的转义,因此它不会触发斜体/强调序列的开始.我尝试用\/\//-例如,假设我要的文字文本/foo/在表格单元格.以下是3种尝试方法:

| /foo/ | \/foo/ | \//foo/ |
Run Code Online (Sandbox Code Playgroud)

在LaTeX导出中,变为:

\emph{foo}  &  \/foo/  &  \//foo/
Run Code Online (Sandbox Code Playgroud)

所以这些都不是/foo/我希望的平原.

emacs escaping org-mode tabular

30
推荐指数
2
解决办法
5568
查看次数

Git反复合并壁球

我试图在git中有两个带有二进制文件的分支 - 一个"开发"和一个"稳定".在我想要将它们"释放"到稳定分支之前,开发分支可以对这些文件进行多次更改(并且如果相关,则稳定分支重命名这些文件).

我可以做一个正常的合并,这很好,但保留了太多的历史 - 当拉动"稳定"分支时,所有来自"开发"分支的中间提交也被拉出(因为它们是父提交).但是我们讨论的是没有任何合理的合并策略的二进制文件(除了他们/我们的),因此开发分支上的文件的实际历史是无用的.当我拉"稳定"分支时,我得到了这个:

          X-------------------G stable
         /                   /
    a---b---c---d---e---f---g development

因为G在开发分支中有一个父项,所以我在我的存储库中得到了开发分支的全部历史记录(c,d,e,f和g的数据对象),我对此并不感兴趣(X与b,应用了一些文件重命名).

所以我尝试git merge --squash从开发分支更改为稳定分支.第一次这样的合并和提交就行了,结果如预期的那样(提交消息中的改变日志很好,与开发分支无关):

          X-------------------G stable
         /                   
    a---b---c---d---e---f---g development

拉完这个压扁的稳定分支后,我在我的存储库中得到了这个,这就是我想要的:

a---b---X---G

但是第二次合并失败了(因为git无法知道我已经合并了多少并且感到困惑).

  • 是否有可能以某种方式记录合并,而不会与两个父母产生"合并提交"?
  • 或者,是否有可能告诉git只合并某个"范围"的修订版,比如在SVN中?
  • 或者,是否可以进行正常合并而不必在拉动时从其他分支下载所有引用?
  • 或者我应该为有问题的文件提供自定义合并驱动程序,只需将"他们的"版本重命名为"我们的",从而解决冲突?我仍然害怕--squash总是试图将整个历史合并到普通的父母,只解决我问题的一半.

更新:变基

如果我理解正确的变形,我会最终得到这个:

                              X stable
                             /
    a---b---c---d---e---f---g development

这让我得到了我不感兴趣的所有数据(c,d,e,f),作为奖励,我将丢失b是分支中稳定版本的信息.

每个开发版本都会增加大约5MB的存储库大小(并且重新打包整个repo只会缩小大约10%),"稳定"分支几乎是免费的(数据已经存在).我想从稳定分支中拉出一个新的版本,只拉新的5MB,而是从X更新到G下载25MB,因为我不知道我不知道我不关心c,d的内容,e和f.

git version-control merge

29
推荐指数
2
解决办法
8771
查看次数

需要最低版本的R包

我只注意到有没有version参数Rrequire()library()功能.当人们需要确保他们至少拥有一个包的最低版本时,人们会做什么,以便例如他们知道某些错误是固定的,或某些功能是否可用,或者其他什么?

我知道Depends包作者的东西,但我正在寻找在脚本,交互式环境,org-mode文件,代码片段等中使用的东西.

packages r version

20
推荐指数
3
解决办法
2081
查看次数

R idiom for switch/case

我有一些R代码看起来基本上是这样的:

compute.quantiles <- function(mu, type) {

  ## 'mu' and 'type' are vectors of the same length

  var <- ifelse(type=='a', 6.3523 * mu^2,
         ifelse(type=='b', 234.23 * mu,
         ifelse(type=='c', {s <- 9.8 * ((mu-0.3)/3)^(6/7)+0.19; mu + mu^2/s},
         ifelse(type=='d', 56.345 * mu^1.5,
         ifelse(type=='e', 0.238986 * mu^2,
         ifelse(type=='f', mu + 1.1868823 * mu^2,
         NA ))))))

  # ...then do something with var...
}
Run Code Online (Sandbox Code Playgroud)

一些示例输入和输出:

print(compute.quantiles(2:4, c('c','d','e')))
[1]   2.643840 292.777208   3.823776
Run Code Online (Sandbox Code Playgroud)

这样做是正确的,但是深层嵌套有点难看,所以我想知道是否有更好的成语.有人有建议吗?如果switch()接受一个向量作为它的第一个参数,那将很好地工作,但它只需要一个标量.

r switch-statement

19
推荐指数
2
解决办法
2万
查看次数

具有右闭合间隔的findInterval()

findInterval()R中的强大函数在其vec参数中使用左闭的子区间,如其文档中所示:

如果i <- findInterval(x,v),我们有v[i[j]] <= x[j] < v[i[j] + 1]

如果我想要右关闭的子间隔,我的选择是什么?我想出的最好的是:

findInterval.rightClosed <- function(x, vec, ...) {
  fi <- findInterval(x, vec, ...)
  fi - (x==vec[fi])
}
Run Code Online (Sandbox Code Playgroud)

另一个也有效:

findInterval.rightClosed2 <- function(x, vec, ...) {
  length(vec) - findInterval(-x, -rev(vec), ...)
}
Run Code Online (Sandbox Code Playgroud)

这是一个小测试:

x <- c(3, 6, 7, 7, 29, 37, 52)
vec <- c(2, 5, 6, 35)
findInterval(x, vec)
# [1] 1 3 3 3 3 4 4
findInterval.rightClosed(x, vec)
# [1] 1 2 3 3 …
Run Code Online (Sandbox Code Playgroud)

r binary-search

19
推荐指数
1
解决办法
6542
查看次数