小编DJJ*_*DJJ的帖子

使用.SD进行data.table操作:简明地计算百分比变化

我正在尝试使用data.table简洁地计算一些百分比变化,但是我完全理解.SD操作是如何工作的.

假设我有下表

dt = structure(list(type = c("A", "A", "A", "B", "B", "B"), Year = c(2000L, 
2005L, 2010L, 2000L, 2005L, 2010L), alpha = c(0.0364325563237498, 
0.0401968159729988, 0.0357395587861466, 0.0317236054181487, 0.0328213742235379, 
0.0294694430578336), beta = c(0.0364325563237498, 0.0401968159729988, 
0.0357395587861466, 0.0317236054181487, 0.0328213742235379, 0.0294694430578336
)), .Names = c("type", "Year", "alpha", "beta"), row.names = c(NA, 
-6L), class = c("data.table", "data.frame"))


> dt
##    type Year      alpha       beta
## 1:    A 2000 0.03643256 0.03643256
## 2:    A 2005 0.04019682 0.04019682
## 3:    A 2010 0.03573956 0.03573956
## 4:    B 2000 …
Run Code Online (Sandbox Code Playgroud)

r data.table

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

R nlminb虚假收敛实际上意味着什么?

我正在使用函数nlminb来最大化函数并使用消息false-convergence获得收敛(收敛= 0).

我试过文档,但没有回答.我试图获得该函数的端口文档,并可以找到该函数nlminb

任何人都可以指向我的端口文档nlminb或解释什么是虚假收敛意味着什么?

我也尝试过其他优化功能但是虽然nlminb有点模糊,但它似乎比任何其他函数更快地收敛到正确的答案.需要执行更多测试以确保.即使使用nlminbthrough optimx也相当慢.

如果我们更了解这个功能是如何工作的,那将是一件好事.Fortran编码员可以随意帮忙.

编辑 我应该早点找到代码.是它,但它仍然是模糊的.有人可以帮忙

optimization fortran r

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

tesseract 从表中读取值

我的问题是关于使用 OCR 从图像中的表中提取数据的这篇文章

我正在使用tesseract将表格图像转换为文本。除了不保留表的格式之外,这很有效。一种解决方案是用一些字母替换列,这些字母tesseract会识别并愚弄它把表格当作一些文本。

这是一个没有列的表的示例 在此处输入图片说明

我使用以下代码绘制“QQ”的列

im=Image.open("file.png")
draw  = ImageDraw.Draw(im)
font=ImageFont.truetype("/usr/share/fonts/gnu-free/FreeSerifBold.ttf",12)
by = font.getsize("S")[1]
col = [240,480]
px = []

for y in range(0,im.size[1],by):
    for x in col:
        draw.text((x,y),"QQ",font=font,fill=0)

im.save("res-file.png")
im.show()
Run Code Online (Sandbox Code Playgroud)

这给了我以下图片 在此处输入图片说明

问题是 tesseract 甚至可以识别 QQ。我也把QQ列写在空白页上,tesseract不认。

有没有办法使用tesseract将png格式的表格转换为文本?有什么东西让我逃过一劫吗?

python tesseract python-tesseract

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

使用proc sql高效转置

我想知道是否可以使用sas中的proc sql有效地从宽到长转置.

我知道proc转置比我在下面建议的方法快得多.但我的目标之一是避免存储转置表.

比方说,我将table1作为

Id|   A|   B|   C|  D    
_____________________
 1|  100|3500|6900| 10300
 2|  200| 250| 300| 350
 3|  150|  32| 400| 204
 4|  200| 800|1400| 2000
Run Code Online (Sandbox Code Playgroud)

我想把它变成

id|col1|  col2|
______________
 1|   A|   100|
 1|   B|  3500|
 1|   C|  6900|
 1|   D| 10300|
 2|   A|   200|
 2|   B|   250|
 2|   C|   300|
 2|   D|   350|
 3|   A|   150|
 3|   B|    32|
 3|   C|   400|
 3|   D|   204|
 4|   A|   200|
 4|   B|   800|
 4|   C|  1400|
 4|   D|  2000|
Run Code Online (Sandbox Code Playgroud)

我能做到这一点; …

sql sas

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

观星者:省略和省略。是的。

我尝试使用omit和中的omit.yes.no选项stargazer()来省略虚拟变量。似乎有一个涉及此选项的错误。这些是我期望从观星者的输出中得到的。

                             logit_1       logit_2    logit_3

| covariates 1            |     21***   20 ***    21.4***
                             (0.2)     (0.12)    (0.10)

| covariate 2             |     0.5     0.3***     0.31***
                              (0.4)    (0.13)      (0.15)

| factor(covariate 3) A   |             0.123***   0.3***
                                        (0.06)     (0.08)

| factor(covariate 3) B   |             1.5**       1.03***
                                        (O.78)     (0.073)

|       OM                |    No         No        Yes
Run Code Online (Sandbox Code Playgroud)

我的观星者命令如下:

stargazer (logit_1,logit_2,logit_3, omit='OM', omit.labels="OM", omit.yes.no = c("Yes","No")).
Run Code Online (Sandbox Code Playgroud)

当我运行上一条命令时,OM变量的结果为否是是。

当我跑步

stargazer (logit_1,logit_2, omit='OM', omit.labels="OM", omit.yes.no = c("Yes","No"))
Run Code Online (Sandbox Code Playgroud)

我不知道

当我跑步时

stargazer (logit_2,logit_3, omit='OM', omit.labels="OM", omit.yes.no = …
Run Code Online (Sandbox Code Playgroud)

r stargazer

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

pers regexp with sas - 完全匹配一个或另一个

我需要提取用文字或文字中的数字书写的数字.

我有一张看起来像这样的桌子,

... 1 child ...
... three children ... 
...four children ...    
...2 children...
...five children
Run Code Online (Sandbox Code Playgroud)

我想要捕获用文字或数字形式写的数字.每行有一个数字.所以期望的输出将是:

1
three
four
2
five
Run Code Online (Sandbox Code Playgroud)

我的正则表达式看起来像这样:

prxparse("/one|two|three|four|five|six|seven|eight|nine|ten|eleven|twelve|thirteen|child|\d\d?/")
Run Code Online (Sandbox Code Playgroud)

有帮助吗?

regex perl sas

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

如果函数带参数,python assertRaises不会通过测试

assertRaises使用以下代码给出断言错误.有什么我做错了吗?

class File_too_small(Exception):
    "Check file size"

def foo(a,b):
    if a<b:
        raise File_too_small
class some_Test(unittest.TestCase):

    def test_foo(self):
        self.assertRaises(File_too_small,foo(1,2))
Run Code Online (Sandbox Code Playgroud)

尽管如此,测试似乎通过了以下修改

def foo:
    raise File_too_small

def test_foo(self):
    self.assertRaises(File_too_small,foo)
Run Code Online (Sandbox Code Playgroud)

python tdd

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

R allow error in lapply

related to this question. I wanted to build a simple lapply function that will output NULL if an error occur.

my first thought was to do something like

lapply_with_error <- function(X,FUN,...){    
    lapply(X,tryCatch({FUN},error=function(e) NULL))
}

tmpfun  <- function(x){
    if (x==9){
        stop("There is something strange in the neiborhood")
    } else {  
        paste0("This is number", x)
    }
    }


tmp <- lapply_with_error(1:10,tmpfun )
Run Code Online (Sandbox Code Playgroud)

But tryCatch does not capture the error it seems. Any ideas?

r

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

如何按组重新整形data.frame

我想转置下表

+---------+----------+------+-------+
|  var    |  Year    |  A   |  B    |
+---------+----------+ -----+-------+
| Mean    |  2006    | 1.3  | 4.6   |
| Median  |  2006    | 1.4  | 4.1   |
| Mean    |  2007    | 3.6  | 5.5   | 
| Median  |  2007    | 4.0  | 5.5   |
| Mean    |  2008    | 5.5  | 4.0   |  `  
| Median  |  2008    | 5.5  | 5.1   |
+---------+----------+------+-------+
Run Code Online (Sandbox Code Playgroud)

对于这样的事情:

+---------+----------+------+--------+
|  var    |  Year    | Mean | Median | …
Run Code Online (Sandbox Code Playgroud)

r dataframe

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

R:基于所有行的每行的条件

一行的每个值如何与表的每个值进行比较?更具体地说,假设我有下表:

DT = data.table(x=rep(c("a","b","c"),each=3), y=c(1,3,6),
     v=1:9,w=as.integer(rnorm(9)*10))

> DT
##    x y v   w
## 1: a 1 1   0
## 2: a 3 2   0
## 3: a 6 3   6
## 4: b 1 4  -4
## 5: b 3 5 -27
## 6: b 6 6  10
## 7: c 1 7   4
## 8: c 3 8   1
## 9: c 6 9   7
Run Code Online (Sandbox Code Playgroud)

如何找到w的数量大于每个w?期望的输出:

> DT1
##    x y v   w count
## 1: a 1 …
Run Code Online (Sandbox Code Playgroud)

r data.table

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