我有一个data.table,其字段为{id,menuitem,amount}.
这是交易数据 - 因此,ID是唯一的,但menuitem重复.现在,我想删除所有条目menuitem == 'coffee'.
另外,想要删除所有行amount <= 0;
在data.table中执行此操作的正确方法是什么?
我可以使用data$menuitem!='coffee'然后将int索引到data [] - 但这不一定有效并且不利用data.table.
任何指向正确方向的人都会受到赞赏.
希望fastPOSIXct工作 - 但在这种情况下不工作.
这是我的时间数据(没有日期) - 我需要从他们那里得到小时数.
times <- c("9:46","11:06", "14:17", "19:53", "0:03", "3:56")
Run Code Online (Sandbox Code Playgroud)
这是错误的输出fastPOSIXct:
fastPOSIXct(times, "GMT")
[1] "1970-01-01 00:00:00 GMT" "1970-01-01 00:00:00 GMT"
[3] "1970-01-01 00:00:00 GMT" "1970-01-01 00:00:00 GMT"
[5] "1970-01-01 00:00:00 GMT" "1970-01-01 00:00:00 GMT"
Run Code Online (Sandbox Code Playgroud)
没有正确存在日期,它无法识别时间.
在hour从方法data.table与as.ITime解决的目的,但看起来像大时代阵列慢.
library(data.table)
hour(as.ITime(times))
# [1] 9 11 14 19 0 3
Run Code Online (Sandbox Code Playgroud)
想知道是否有更快的方式(就像fastPOSIXct,但无需日期工作).
fastPOSIXct 真的很像快照,但错了.
我们在csv文件中有来自外部源的数据:
orderid,OrderDate,BusinessMinute,Quantity,Price
31874,01-01-2013,00:06,2,17.9
Run Code Online (Sandbox Code Playgroud)
数据date在一列和time另一列中 - 我需要通过将这两列组合在一起来生成时间戳.
我正在使用csv filterlogstash中的以下配置从文件中读取上述数据 - 这是生成自己的时间戳:
input {
file {
path => "/root/data/import/Order.csv"
start_position => "beginning"
}
}
filter {
csv {
columns => ["orderid","OrderDate","BusinessMinute","Quantity","Price"]
separator => ","
}
}
output {
elasticsearch {
action => "index"
host => "localhost"
index => "demo"
workers => 1
}
}
Run Code Online (Sandbox Code Playgroud)
如何组合OrderDate + Business Minute作为@timestamp?
我正在data.table从包含日期,订单,金额等字段的CSV文件中加载.
输入文件偶尔没有所有日期的数据.例如,如下所示:
> NADayWiseOrders
date orders amount guests
1: 2013-01-01 50 2272.55 149
2: 2013-01-02 3 64.04 4
3: 2013-01-04 1 18.81 0
4: 2013-01-05 2 77.62 0
5: 2013-01-07 2 35.82 2
Run Code Online (Sandbox Code Playgroud)
在上面的03年1月和6月6日没有任何条目.
想要用缺省值填充缺失的条目(例如,订单为零,金额等),或者最后一个vaue(例如,03-Jan将重用02-Jan值,06-Jan将重用05-Jan价值观等.)
使用此类默认值填充缺失日期数据缺口的最佳/最佳方法是什么?
这里的答案建议使用allow.cartesian = TRUE,并且expand.grid对于缺少工作日 - 它可能适用于工作日(因为它们只是7个工作日) - 但不确定这是否也是正确的约会方式,特别是如果我们处理多个年度数据.
我正在使用C++ 0x lambda表达式来修改地图的值.
但是,通过引用传递map迭代器有困难.
如果我只是通过迭代器,通过如下值:[](std::pair<TCHAR, int > iter)它编译得很好,但值不会在地图中更新.
如果我尝试通过引用传递迭代器,例如[](std::pair<TCHAR, int >& iter)VS2010编译器抱怨它
cannot convert paramater from 'std::pair<_Ty1,_Ty2>' to 'std::pair<_Ty1,_Ty2> &'
Run Code Online (Sandbox Code Playgroud)
这是代码.欣赏有关如何使用lambda表达式修改std :: map对象的信息.
#include <tchar.h>
#include <map>
#include <algorithm>
#include <vector>
int _tmain(int argc, _TCHAR* argv[])
{
typedef std::map<TCHAR, int > Map;
Map charToInt;
charToInt[_T('a')] = 'a';
charToInt[_T('b')] = 'b';
charToInt[_T('c')] = 'c';
charToInt[_T('d')] = 'd';
std::for_each(charToInt.begin(), charToInt.end(), [](std::pair<TCHAR, int >& iter)
{
int& val = iter.second;
val++;
});
return 0;
}
Run Code Online (Sandbox Code Playgroud)
谢谢
在R中,我使用Min和Max来查找给定向量的最小值和最大值.
此向量是计算和过滤的结果,通常可以是NULL或空列表.
在这种情况下,我们会收到警告,例如:
警告消息:在max(el)中:max没有非缺失参数; 返回-Inf
如果您在循环(或层)中为多个输入执行此操作,您将开始遇到大量警告
Inf的默认值不适合我的目的,并希望返回0或其他值.
现在,除了每次检查输入是否对if..else条件有效外,我是否有任何方法可以在空输入的情况下为这些Min,Max方法规定默认返回值.
此外,后处理Min,Max结果以我自己的值手动删除/替换Inf并不是真正有效的方法.
那么,有没有问R返回我从最小值,最大值自己的自定义默认值空载体的任何有效的方法,而不是+ Inf文件和-Inf?
使用if..else进行预处理并使用Inf替换进行后处理并不是那么优雅.
如果在Min周围编写自定义包装器,Max是唯一的方法,您如何建议在不影响速度或优雅的情况下编写它?
输入:我有这个数据:
library(data.table)
ids <- c(10, 10, 10, 11, 12, 12)
items <- c('soup', 'rice', 'lemon', 'chicken', 'lamb', 'noodles')
orders <- as.data.table(list(id=ids, item=items))
> orders
id item
1: 10 soup
2: 10 rice
3: 10 lemon
4: 11 chicken
5: 12 lamb
6: 12 noodles
Run Code Online (Sandbox Code Playgroud)
目标:需要达到这一点(按 ID 对所有项目进行分组):
id items
1: 10 soup,rice,lemon
2: 11 chicken
3: 12 lamb,noodles
Run Code Online (Sandbox Code Playgroud)
我做了什么:我在 R 3.1.1(最新版本)上使用 data.table - 尝试了以下方法,它应该可以工作:
orders[,list(items=list(item)), by=id]
Run Code Online (Sandbox Code Playgroud)
但是得到以下(不正确的)输出:
id items
1: 10 lamb,noodles,lemon
2: 11 lamb,noodles,lemon
3: 12 …Run Code Online (Sandbox Code Playgroud) 当使用node.js应用程序中的以下代码以编程方式启动 js-ipfs 节点时,它会启动 swarm,允许添加文件并查询它们。
// code from the docs: https://github.com/ipfs/js-ipfs#use-in-nodejs
const IPFS = require('ipfs')
const node = new IPFS()
node.on('ready', () => {
// Ready to use!
})
Run Code Online (Sandbox Code Playgroud)
但 API 和网关不可用,这意味着 Web-ui 无法检查存储库内容。如何使用 npm 包启动 API 网关以及 ipfs swarm ipfs?