小编Pha*_*ann的帖子

按运行间隔对数据表进行分组

我正在将R和包data.table一起使用,并且我想通过运行(时间)间隔或重叠箱将data.table分组。对于这些运行间隔中的每一个,我都希望找到相等数据对的出现。此外,这些“数据对相等”应该不完全相等,而应在一定的间隔范围内。

该问题的简单版本如下:

#Time   X   Y Counts
# ... ... ...      1
#I would like to do:
DT[, sum(counts), by = list(Time, X, Y)]
#with Time, X and Y being in overlapping intervals.
Run Code Online (Sandbox Code Playgroud)

findintervals() 会给我的垃圾箱带有“硬边界”,而不是重叠的边界。

更详细的问题:假设我有一个类似的data.table:

Time    <- c(1,1,2,4,5,5,6,7,8,8,8,8,12,13)
#more equal time values are allowed.
X       <- c(6,6,7,10,5,7,6,3,9,10,6,3,3,6)
Y       <- c(2,6,10,3,4,6,6,9,4,9,6,6,9,9)
DT      <- data.table(Time, X, Y)

    Time  X  Y
 1:    1  6  2
 2:    1  6  6
 3:    2  7 10
 4:    4 10  3
 5:    5  5  4
 6:    5 …
Run Code Online (Sandbox Code Playgroud)

grouping r intervals data.table

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

cv :: String和std :: string:何时使用哪一个并且必须同时使用?

在OpenCV项目中通常cv::String用于函数,例如简单putText.但是,使用std std::string时负责的功能.例如,在这种情况下

ifstream stream(filepath);
string line;
getline(stream, line, '\n');
Run Code Online (Sandbox Code Playgroud)

它必须有一个std::string作为cv::String引发错误.反之亦然使用OpenCV函数的std::string情况正确转换为cv::String代码确实有效:

string Str = "Test";
putText(img, Str, Point(10, 10), FONT_HERSHEY_PLAIN, 1, Scalar::all(255), 1);
Run Code Online (Sandbox Code Playgroud)

问题

为什么OpenCV有自己的String-Class?我认为可能存在一些对OpenCV有用的差异,而所有(或大多数?)功能std::string仍然可能cv::String.但它似乎std::string可以转换为cv::String(我至少测试过它putText.

文档显示了类似的功能,但也有一些差异,如相关的功能static bool operator> (const String &lhs, const String &rhs)和类似的:

http://docs.opencv.org/3.1.0/d1/d8f/classcv_1_1String.html for cv::String http://www.cplusplus.com/reference/string/string/ forstd::string

我错过了什么吗?

我有理由在一个项目中使用两个版本的字符串,还是只能std::string在更好的可读性方面使用它?(只要不使用前面提到的相关功能)

编辑:这里的问题解决了QString和字符串的类似问题,建议std::string尽可能使用.我想知道这对OpenCV是否也有效.

c++ string opencv std

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

将 data.table 列中逗号分隔字符串中的数字转换为长表形式

给定的是一个带有字符串列的data.table。字符串包含表示任意数量的 (x, y, z) 点的逗号分隔值(因此逗号分隔值的数量可以被 3 整除,例如 '1,2,3,4,5,6' 对应于两点 (1, 2, 3), (4, 5, 6))。我想将这些字符串转换成一个长表,以便每一行只包含这些点之一。应该扩展之前的 data.table 并将其他列复制到相应的添加行数。

我解决了这个任务,但是用一个丑陋的组合strsplit + matrix迭代单个行,lapply(1:nrow(DT))这很可能是非常低效的。我想知道是否有更优雅的解决方案。此外,我使用 300k 行 data.table 耗尽了 RAM。

生成示例数据

library(data.table)
set.seed(1237)
N <- 5 # number of rows for test data
listlengths <- round(runif(N, 1, 5))*3 # length of row-wise comma separated lists of 3D-points

generateStrList <- function(n){
  paste0(collapse = ",", round(runif(n, 0, 100)))
}

strlist <- lapply(listlengths, generateStrList)

# The follwoing data.table is given for the …
Run Code Online (Sandbox Code Playgroud)

string r list data.table

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

从 pydantic 数据模型的打印和调用中隐藏变量(例如“密码”)

我正在将 pydantic 用于某些用户/密码数据模型。打印模型时,我想用其他值替换密码的值(***例如),以防止密码意外写入日志文件或控制台。

from pydantic import BaseModel

class myUserClass(BaseModel):
    User = 'foo'
    Password = 'bar'

    def __str__(self):
        return "Hidden parameters."

U = myUserClass()

print(U)
# > Hidden parameters. # Should be User='foo', Password='***' or similar

U # This will still show my password.
#> myUserClass(User='foo', Password='bar')
Run Code Online (Sandbox Code Playgroud)

如何访问通常打印的字符串并仅将“bar”替换为“***”,但保留所有参数?

我怎样才能在打电话时也做到这一点U?这可能并不像通常print调用的日志记录和控制台输出那么重要。

python replace pydantic

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

构建自己的包但加载后命名空间为空

我正在使用RStudio创建自己的软件包,到目前为止一直运行良好.当我现在通过RStudio的'Build Source Package'构建一个包(将包从我的Windows机器移动到Linux机器)时,一切似乎都很好.我在Linux机器上安装软件包,用require(或库)加载它,但是找不到任何功能!错误是object 'somefunction' not found并且myPackage::somefunction表示没有导出此类对象.事实上,如果我在RStudio中查看myPackage的环境,它会显示它是空的.

RStudio通过创作说:

==> roxygen2::roxygenize('.', roclets=c('rd', 'collate', 'namespace', 'vignette'))

First time using roxygen2. Upgrading automatically...
Writing NAMESPACE
Warnmeldung:
Paket 'nlme' wurde unter R Version 3.2.5 erstellt 
Documentation completed

==> Rcmd.exe build myPackage

* checking for file 'myPackage/DESCRIPTION' ... OK
* preparing 'myPackage':
* checking DESCRIPTION meta-information ... OK
* cleaning src
* checking for LF line-endings in source and make files
* checking for empty or unneeded directories
Removed empty directory 'myPackage/data' …
Run Code Online (Sandbox Code Playgroud)

packages r rstudio roxygen2

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

r ggplot2 - 自定义文本而不是图例

是否可以在ggplot2中用自定义文本替换图例?我知道注释,但我不想写入图表,而是在它旁边(或在它下面) - 确切地说是一个传说,并以一种相当简单的方式进行.

例如在这个简单的图表中

library(data.table)
library(ggplot2)
library(ggrepel)

id <- c(1:10) 
x1 <- sample(1:10, 10, replace=T)
x2 <- sample(1:10, 10, replace=T)
x3 <- sprintf("Point.%d",id)
df<-data.frame(id,x1,x2,x3)
dt<-data.table(df)
setkeyv(dt,c("id"))

p<-ggplot(data=dt,aes(x1,x2))+geom_point()+geom_text_repel(aes(label=x3))+
ggtitle("Graph")+xlab("X")+ylab("Y")+theme_bw()
p
Run Code Online (Sandbox Code Playgroud)

我想写一些关于旁边图表的(简短的).我担心这在ggplot2中可能不容易实现,因为它超出了它的目的 - 但对我帮助很大.

r ggplot2

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

标签 统计

r ×4

data.table ×2

string ×2

c++ ×1

ggplot2 ×1

grouping ×1

intervals ×1

list ×1

opencv ×1

packages ×1

pydantic ×1

python ×1

replace ×1

roxygen2 ×1

rstudio ×1

std ×1