小编che*_*gcj的帖子

评估R data.table中的表达式

我有以下内容data.table:

> dt = data.table(expr = c("a + b", "a - b", "a * b", "a / b"), a = c(1,2,3,4), b = c(5,6,7,8))
> dt
    expr a b
1: a + b 1 5
2: a - b 2 6
3: a * b 3 7
4: a / b 4 8
Run Code Online (Sandbox Code Playgroud)

我的目标是获得以下内容data.table:

> dt
    expr a b ans
1: a + b 1 5   6
2: a - b 2 6  -4
3: a …
Run Code Online (Sandbox Code Playgroud)

eval r data.table

9
推荐指数
2
解决办法
1527
查看次数

R data.table group由多列组成1列和求和

我有以下内容data.table:

> dt = data.table(sales_ccy = c("USD", "EUR", "GBP", "USD"), sales_amt = c(500,600,700,800), cost_ccy = c("GBP","USD","GBP","USD"), cost_amt = c(-100,-200,-300,-400))
> dt
   sales_ccy sales_amt cost_ccy cost_amt
1:       USD       500      GBP     -100
2:       EUR       600      USD     -200
3:       GBP       700      GBP     -300
4:       USD       800      USD     -400
Run Code Online (Sandbox Code Playgroud)

我的目标是获得以下内容data.table:

> dt
   ccy total_amt
1: EUR       600
2: GBP       300
3: USD       700
Run Code Online (Sandbox Code Playgroud)

基本上,我想按货币汇总所有成本和销售额.实际上,这data.table有> 500,000行,所以我想要一种快速有效的方法来将总和相加.

想快速做到这一点的想法吗?

group-by r data.table

6
推荐指数
3
解决办法
1221
查看次数

使用ROracle dbWriteTable将POSIXct写回Oracle DB

在Oracle DB中:

DESCRIBE ORACLE_DB_TABLE;

|---------------------------------------|
| Column Name      | Data Type          |
|---------------------------------------|
| TRANSACTION_TIME | DATE               |
| TRANSACTION_ID   | VARCHAR2 (20 Byte) |
| TRANSACTION_AMT  | NUMBER (38,10)]    |
|---------------------------------------|
Run Code Online (Sandbox Code Playgroud)

在R:

> r_data_table
      TRANSACTION_TIME TRANSACTION_ID TRANSACTION_AMT
1: 2015-04-28 11:12:24            ABC             123
> dbWriteTable(conn, "ORACLE_DB_TABLE", r_data_table, overwrite = F, append = T, row.names = F)
> Error in .oci.WriteTable(conn, name, value, row.names = row.names, overwrite = overwrite,  :
  Error in .oci.ValidateZoneInEnv(FALSE) :
  environment variable 'ORA_SDTZ()' must be set to …
Run Code Online (Sandbox Code Playgroud)

oracle r date posixct roracle

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

如何将 .pyd 文件作为 python 模块导入?

我正在使用 PyCharm。我在以下位置有一个 python 脚本:

C:\Users\XYZ\PycharmProjects\Project1\playground.py
Run Code Online (Sandbox Code Playgroud)

playground.py 只有一行代码,如下所示:

import PyTbl
Run Code Online (Sandbox Code Playgroud)

Project1文件夹中有另一个文件:

C:\Users\XYZ\PycharmProjects\Project1\PyTbl.pyd
Run Code Online (Sandbox Code Playgroud)

当我运行 Python 脚本时playground.py,出现以下错误:

ImportError: numpy.core.multiarray failed to import
Traceback (most recent call last):
  File "C:/Users/XYZ/PycharmProjects/Project1/playground.py", line 1, in <module>
    import PyTbl
SystemError: initialization of PyTbl raised unreported exception
Run Code Online (Sandbox Code Playgroud)

如果我将鼠标悬停playground.py在 PyCharm 编辑器中的 Python 代码行上,我会收到以下错误消息:

"No module named PyTbl"
Run Code Online (Sandbox Code Playgroud)

知道我应该如何将.pyd文件导入 Python 脚本吗?

python windows pyd pycharm

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

使用R中的data.table将POSIXct列连接到Date列

在以下示例中,有人可以向我解释为什么2015-03-31的日期更改为1034-04-03?

dt1 = data.table(id = c(1,2), date = as.POSIXct("2015-03-31 BST"), key = "id")
dt1
#    id       date
# 1:  1 2015-03-31
# 2:  2 2015-03-31
dt2 = data.table(id = c(1,2), date = as.Date(NA), key = "id")
dt2
#    id date
# 1:  1 <NA>
# 2:  2 <NA>
dt2[dt1, date := i.date]
dt2
#    id       date
# 1:  1 1034-04-03
# 2:  2 1034-04-03
Run Code Online (Sandbox Code Playgroud)

我的目的是让date来自dt1dt2Date格式,而不是POSIXctid(不同id会有不同date …

join r date posixct data.table

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

标签 统计

r ×4

data.table ×3

date ×2

posixct ×2

eval ×1

group-by ×1

join ×1

oracle ×1

pycharm ×1

pyd ×1

python ×1

roracle ×1

windows ×1