可能重复:
可以`ddply`(或类似)做一个滑动窗口?
是否有像rollapply(标准R或CRAN包中)这样的函数在data.frame上运行,但不会将其转换为矩阵.rollapply可以与data.frame一起使用,但如果data.frame具有混合类型,则每个数据窗口都将转换为字符(矩阵).
我更喜欢支持width,na.pad,align等的函数,就像rollapply一样
例
使用混合类型的任何data.frame
test = data.frame( Name = c( "bob" , "jane" , "joe" ) , Points = c( 4 , 9 , 1 ) )
假设您想要使用窗口大小2进行滚动.使用data.frame调用FUN的第一次迭代,该data.frame仅包含test的第1行和第2行.
所以RollapplyThatRespectsDataFrame( ... , FUN = function( x ) { ... } )
在第一次迭代时会设置x = data.frame( Name = c( "bob" , "jane" ) , Points = c( 4 , 9 ) )
第二次迭代是一个data.frame,其中包含第2行和第3行test
.
基本上这个新函数与rollapply做同样的事情,除了它与data.frames一起正常工作.它不会转换为矩阵.
给定日期向量(可能跨越多年):
exampleDates = as.Date( 1 : 15, origin = as.Date( "2012-12-25" ) )
我想生成一个标识符,将日期分为几周.所以假设一个日历从周日开始:
这是一个有缺陷的尝试:
strftime( exampleDates , format = "%Y%W" )
它将第31个和第1个视为不同的星期(毫不奇怪).我正在寻找类似的东西strftime
,它将生成一个标识符(字符,数字,等等),我可以使用它来按周分组日期.
我相信已经有一些聪明的功能了.
参数的CreateMany
重载T seed
实际上做了什么?我试图播种,但种子似乎对创建的对象没有影响.例如,我期待如果我的种子具有类型的属性string
,那么:
字符串值将用于在所有新创建的对象中填充该属性
或者在所有新创建的对象中设置该属性时,字符串值将用作前缀
此文档说明您可以通过使用Queue
要调用的方法的属性来指定队列.这假设您始终希望在同一队列上执行方法.是否有一种方法可以调用进程Enqueue
来指定要将作业放入队列的名称(有效地将决策权交给作业生成器,而不是作业的定义).
伙计们,
假设我使用来自线程10,11,12的CallContext.SetData()来存储三个新的对象Car实例.这些线程完成执行.然后我执行另一个使用线程10,11,12的多线程操作(可能与第一个不同的操作).GetData()将检索我存储的相同三个对象吗?或者现在上下文有些不同,那些对象消失了?
我的特定用例是任务并行库.我正在使用TPL来并行化一些操作,我想了解在TPL调用之间通过CallContext.SetData()存储的数据会发生什么.
编辑
Per @wageoghe建议我尝试了ThreadLocal并且它有效!
更新代码以证明它:
using System;
using System.Threading;
using System.Threading.Tasks;
namespace TlsTest
{
public class Program
{
public static void Main()
{
Console.WriteLine( "-------using threadpool---------" );
UseThreadPool();
Console.WriteLine( "-------using tasks---------" );
UseTasks();
Console.WriteLine( "-------using parallel for---------" );
UseParallelFor();
Console.ReadKey();
}
public static void UseThreadPool()
{
var finish = new CountdownEvent( TotalThreads );
for ( int i = 0 ; i < TotalThreads ; i++ )
{
ThreadPool.QueueUserWorkItem( x =>
{
int id = Thread.CurrentThread.ManagedThreadId;
Thread.Sleep( SleepMilliseconds ); …
Run Code Online (Sandbox Code Playgroud) 何时将Hadoop的第一个版本发布给公众?任何支持链接?
编辑
我应该更清楚 - 我问这个问题,因为维基百科的文章,我在Hadoop上找到的最好的资源,并不清楚该程序何时首次向公众开放.
是否有一个函数可以保存至少有一个NA的行,如果没有NA则丢弃行...相反的na.omit()
?我试过!na.omit()
但是没用.
一个以前的帖子促使我张贴了这个问题.这似乎是一个最佳实践,以重新分配==
给isTRUE(all.equal())
(和!=
到!isTRUE(all.equal())
.我想知道如果别人这样做在实践中?我才意识到,我使用==
,并!=
在整个代码库我做数字的平等.我的第一反应是,我需要做的完全刷新并转换为all.equal
.但事实上,每次我使用==
并且!=
我想测试相等性(无论数据类型).事实上,我不确定这些操作除了相等之外还会测试什么.我确定我在这里错过了一些概念.有人可以启发我吗?我看到这种方法的唯一论据是,在某些情况下,由于容忍度,两个不相同的数字看起来是相同的all.equal
.但我们被告知两个数字实际上相同的可能不会identical()
因为它们是如何存储在内存中而通过.所以真的有什么不是默认的all.equal
?
我正在尝试使用RODBC写入Excel2007文件,我一直在收到错误.我已经将问题简化为这个非常基本的情况,一个包含字符,数字,日期和逻辑数据类型的1行data.frame:
toWrite = data.frame( Name = "joe" , Date = as.Date("2011-01-01"), Value = 2 , Paid = FALSE )
xlFile = odbcConnectExcel2007( "REPLACE_WITH_XLSB_FILE_PATH" , readOnly = FALSE )
sqlSave( xlFile , toWrite , tablename = "worksheet1" , rownames = FALSE )
Run Code Online (Sandbox Code Playgroud)
错误:
Error in sqlSave(xlFile, toWrite, tablename = "worksheet1", rownames = FALSE) :
[RODBC] Failed exec in Update
22018 39 [Microsoft][ODBC Excel Driver]Invalid character value for cast specification
In addition: Warning message:
In odbcUpdate(channel, query, mydata, coldata[m, ], test = …
Run Code Online (Sandbox Code Playgroud) 我如何注册PSOCK集群(使用包并行创建)foreach
?我目前正在使用registerDoSNOW
该doSNOW
软件包来注册snow
SOCK集群.