我有这个旧的“无代码源”问题的新变体。
这是我看到的错误:
$ coverage report
No source for code: '/home/pauljohn/GIT/projects/ml_grb/grb/packages/grb/tests/C:\Users\G33987\.conda\envs\grb\lib\site-packages\grb\review\review.py'.
Aborting report output, consider using -i.
Run Code Online (Sandbox Code Playgroud)
我在 Linux 中,与 Windows 队友“G33987”一起在 Git 存储库中工作。如您所见,我当前的工作目录是/home/pauljohn/GIT/projects/ml_grb/grb/packages/grb/tests
,我使用的虚拟环境位于 ~/venv-grb 中。请注意,超级奇怪的事情是,它正在我的测试文件夹中查找一个文件,其中附加了队友安装的“grb”包文件夹的完整路径,“C:\Users\G33987.conda...”
我可以添加“-i”标志来忽略问题,但我想理解并修复。
.coverage
在有关coverage.py 的此问题的其他帖子中,该问题与测试文件夹中旧副本的存在或*.pyc
文件的存在有关。我检查过,我们的 Git 存储库没有跟踪任何pyc
文件。然而,它错误地跟踪了原始.coverage
文件。但我们不再跟踪它,并且我在运行之间手动删除了它。
到目前为止,我有这个工作流程
coverage erase
find . -name "*.pyc" -exec rm {} \;
coverage run --source=grb -m pytest .
coverage report
我可以运行coverage report -i
忽略问题,并且输出确实会给出有关我自己的虚拟环境中的文件的逐行报告。但我对忽略错误感到厌恶。对队友虚拟环境的引用从何而来?我没有使用 conda 虚拟环境,而是纯 Python 虚拟环境。
Python 3.8.5
coverage 5.5
pytest 6.2.2
py 1.10.0
pluggy 0.13.1
Run Code Online (Sandbox Code Playgroud) 在R-devel列表中,Martin Maechler发布了有关因子重复水平的消息
“与非唯一(重复)水平的因素已经自2009年以来弃用-被更多现在已经过时......” 2016年6月4日,
它指出,在计划于2017年4月发布的R 3.4中,重复的级别将导致错误,而不仅仅是警告。
我不知道为什么水平功能不会引起类似的警告?在这里,我以两种方式将前三个级别组合为“ a”,一种已弃用。
例
> x <- c("a", "b", "c", "d")
> xf <- factor(x, levels = c("a", "b", "c", "d"),
labels = c("a", "a", "a", "d"))
Warning message:
In `levels<-`(`*tmp*`, value = if (nl == nL)
as.character(labels) else paste0(labels, :
duplicated levels in factors are deprecated
> xf <- factor(x)
> levels(xf) <- c("a", "a", "a", "d")
> xf
[1] a a a d
Levels: a d
Run Code Online (Sandbox Code Playgroud)
我想理解为什么R与前者对待后者的区别。
这是记录的级别行为,我没有利用未声明的元素。在?levels中,有一个示例允许重复的级别。我将其粘贴以保存您的查找。
## combine some …
Run Code Online (Sandbox Code Playgroud) 这个问题被搁置了,因为它太笼统了.我正在修改更具体.
我帮助的其中一个人决定将模拟练习扩大到很大的比例.通常我们做的事情将有100个条件,每个条件1000次运行,结果可以"轻松"适合单个文件或数据框.我们使用SAS,R或Mplus来做这种事情.这个是在R中.当我听说项目因缺乏记忆而失败时,我应该看到麻烦.我们看到,有时使用贝叶斯模型,将内存链中的所有结果保持得过于苛刻.这些情况下的修复方法是将批量迭代保存在单独的文件中.在没有注意细节的情况下,我建议他们在模拟过程中在磁盘上写下较小的文件.
后来,我意识到我的错误的严重性.他们生成了48,000个输出CSV文件,每个文件有1000行和大约80列实数.这些都是用CSV文件写出来的,因为研究人员对他们可以看到的数据感到满意.再次,当他们问我如何分析时,我没有注意.我在想小数据,并告诉他们使用shell脚本堆叠csv文件.结果是40 + GB csv文件.R不能希望在我们这里的电脑上打开它.
我相信/希望分析永远不需要在一个回归模型中使用所有40GB的数据:)我希望他们更有可能想要总结较小的段.通常的练习有3到5列模拟参数,然后是10列分析结果.在这个项目中,结果更加庞大,因为它们有10列参数,所有混合和匹配组合使项目扩展.
我认为最好的计划是将数据存储在类似"数据库"的结构中.我希望你告诉我采取哪种方法.
MySQL的?不再开放了,我不太热心.
PostgreSQL的?似乎越来越流行,之前没有管理过服务器.
SQLITE3?这里的一些管理员为我们提供了以这种格式进行分析的数据,但我们从未收到任何大于1.5GB的数据.
HDF5(也许是netCDF?)过去(比如说2005年)这些专门的科学风格容器数据库类格式会运行良好.但是,自从我开始帮助社会科学学生以来,我没有听说过这些.当R开始时,我们正在使用HDF5,我的一个朋友写了原始的R代码来与HDF5进行交互.
我的首要任务是快速数据检索.我想如果其中一位技术人员可以学习检索矩形块,我们可以向研究人员展示如何做同样的事情.
在用户建议之后,我正在修改问题,以更狭窄地关注“为什么我不能从 shell 脚本运行 conda 命令”的问题。
我的默认 conda 环境名为“py37”。Shell 启动,我可以停用:
(py37) pauljohn@delllap-16:Desktop$ conda deactivate
pauljohn@delllap-16:Desktop$
Run Code Online (Sandbox Code Playgroud)
我想创建一个具有短名称的 shell 脚本来完成相同的工作。我尝试了几种变体,例如一个名为“noconda.sh”的文件:
$ cat noconda.sh
#!/bin/bash
eval "conda deactivate"
Run Code Online (Sandbox Code Playgroud)
显然,这是一个失败:
pauljohn@delllap-16:bin$ noconda.sh
CommandNotFoundError: Your shell has not been properly configured to use 'conda deactivate'.
To initialize your shell, run
$ conda init <SHELL_NAME>
Currently supported shells are:
- bash
- fish
- tcsh
- xonsh
- zsh
- powershell
See 'conda init --help' for more information and options.
IMPORTANT: You may need to close and …
Run Code Online (Sandbox Code Playgroud) 我有一个名为的新 R 包stationery
,它包含有关如何使用 LaTeX 和 Markdown 文档以及自定义模板的信息。
当我在 Ubuntu Linux 中构建软件包时,后续检查基本上是成功的,但我对下面看到的小插图索引警告感到困惑。我实际上有一个小插图index.html
文件:
$ R CMD check --as-cran stationery_0.92.tar.gz\n* using log directory \xe2\x80\x98/tmp/stationery.Rcheck\xe2\x80\x99\n* using R version 3.5.1 (2018-07-02)\n* using platform: x86_64-pc-linux-gnu (64-bit)\n* using session charset: UTF-8\n* using option \xe2\x80\x98--as-cran\xe2\x80\x99\n* checking for file \xe2\x80\x98stationery/DESCRIPTION\xe2\x80\x99 ... OK\n* checking extension type ... Package\n* this is package \xe2\x80\x98stationery\xe2\x80\x99 version \xe2\x80\x980.92\xe2\x80\x99\n* checking CRAN incoming feasibility ... NOTE\nMaintainer: \xe2\x80\x98Paul Johnson <pauljohn@ku.edu>\xe2\x80\x99\n\nNew submission\n\nPackage has a VignetteBuilder field but no prebuilt vignette index.\n* checking …
Run Code Online (Sandbox Code Playgroud) 对于数据集中的每个学生,可能已经收集了一组特定的分数.我们想要计算每个学生的平均值,但只使用与该学生密切相关的列中的分数.
计算中所需的列对于每行是不同的.我已经想过如何使用常用工具在R中编写这个,但我试图用data.table重写,部分是为了好玩,但也部分是为了预期这个小项目的成功,这可能导致需要进行计算很多很多行.
这是一个"为每行问题选择特定列集"的小工作示例.
set.seed(123234)
## Suppose these are 10 students in various grades
dat <- data.frame(id = 1:10, grade = rep(3:7, by = 2),
A = sample(c(1:5, 9), 10, replace = TRUE),
B = sample(c(1:5, 9), 10, replace = TRUE),
C = sample(c(1:5, 9), 10, replace = TRUE),
D = sample(c(1:5, 9), 10, replace = TRUE))
## 9 is a marker for missing value, there might also be
## NAs in real data, and those are supposed to be regarded …
Run Code Online (Sandbox Code Playgroud) 我有一个输出正确渲染的html代码的函数,但是将其封装在带有'results =“ asis”`的markdown文档R代码块中会失败。我将问题追溯到HTML代码中的空格。我喜欢空格,因为它们使读取原始HTML文件更加容易。如果您可以考虑安装我的R软件包“ rockchalk”,则可以运行此程序并看到相同的内容。
我展示了问题是由以下MRE中HTML中的空格引起的(标记被视为代码的标记)。我得到的输出没有任何其他样式表魔术就可以使用:http : //pj.freefaculty.org/scraps/mre.html
向下滚动,您会看到表格已损坏,但是在筛选出多余的空格后,表格将按预期显示。
在您看来,这仅仅是我的用户错误,即依赖HTML代码中的空格,还是R markdown中“ asis”的错误。
---
title: "Guide Documents"
author:
- name: Paul Johnson
affiliation: Center for Research Methods and Data Analysis, University of Kansas
abstract:
Author, please REMEMBER TO INCLUDE AN ABSTRACT BEFORE FINALIZING THIS DOCUMENT!
date: "`r format(Sys.time(), '%Y %B %d')`"
output:
html_document:
highlight: haddock
---
```{r setup, include = FALSE}
##This Invisible Chunk is required in all CRMDA documents
outdir <- paste0("tmpout")
if (!file.exists(outdir)) dir.create(outdir, recursive = TRUE)
knitr::opts_chunk$set(echo = …
Run Code Online (Sandbox Code Playgroud) 我正在使用反向引用来摆脱变量名称向量中的意外重复.我遇到的第一种情况下的名字有这样的重复模式
x <- c("gender_gender-1", "county_county-2", "country_country-1997",
"country_country-1993")
Run Code Online (Sandbox Code Playgroud)
重复总是用下划线分开,只有一个重复消除.它们总是从文本的开头开始.检查正则表达式食谱,2ed后,我得到了一个有效的答案:
> gsub("^(.*?)_\\1", "\\1", x)
[1] "gender-1" "county-2" "country-1997" "country-1993"
Run Code Online (Sandbox Code Playgroud)
我担心将来的情况可能会有破折号或空格作为分隔符,所以我想稍微概括一下匹配.我也得到了解决方案.
> x <- c("gender_gender-1", "county-county-2", "country country-1997",
+ "country,country-1993")
> gsub("^(.*?)[,_\ -]\\1", "\\1", x)
[1] "gender-1" "county-2" "country-1997" "country-1993"
Run Code Online (Sandbox Code Playgroud)
到目前为止,总胜利.
现在,如果在某些情况下有三次重复,那么正确的修复是什么?在这一个中,我希望"国家 - 国家 - 国家"成为一个"国家".
> x <- c("gender_gender-1", "county-county-county-2")
> gsub("^(.*?)[,_\ -]\\1", "\\1", x)
[1] "gender-1" "county-county-2"
Run Code Online (Sandbox Code Playgroud)
我愿意用"_"替换所有的分隔符,如果这样可以更容易地删除重复的单词.
我们在 gitlab 中有一个启用了 git-lfs 的存储库,它工作得很好。它很好地分离了 pdf、电影和其他我们不想进行版本管理的内容。
出现用户错误,有人在未启用 git-lfs 支持的系统上克隆存储库。那个人将一个 pdf 文件添加到 git 并推送回服务器。
然后另一个用户在有 git-lfs 的系统上获取该分支,并尝试检查它:
$ git checkout pj-guide_47_mac_R_setup
Switched to branch 'pj-guide_47_mac_R_setup'
Your branch is behind 'origin/pj-guide_47_mac_R_setup' by 14 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
Encountered 1 file(s) that should have been pointers, but weren't:
47.mac_R_setup/47.mac_R_setup-slides.pdf
Run Code Online (Sandbox Code Playgroud)
正确配置 git-lfs 来修复该 pdf 文件的系统上最直接的路线是什么?根据https://github.com/git-lfs/git-lfs/issues/1726,有 git lfs merge import 与 git-lfs 2.3.0 一起发布的用法,但我无法理解如何使用它。
r ×6
bigdata ×1
conda ×1
coverage.py ×1
data.table ×1
git-lfs ×1
hdf5 ×1
knitr ×1
pytest ×1
r-markdown ×1
regex ×1
sql ×1