我有一个数据集,其列如下所示:
Consumer ID | Product ID | Time Period | Product Score
1 | 1 | 1 | 2
2 | 1 | 2 | 3
Run Code Online (Sandbox Code Playgroud)
等等.
作为计划的一部分(用C语言编写),我需要处理所有消费者针对特定产品和时间段组合给出的所有可能组合的产品分数.假设有3个产品和2个时间段.然后我需要处理所有可能组合的产品分数,如下所示:
Product ID | Time Period
1 | 1
1 | 2
2 | 1
2 | 2
3 | 1
3 | 2
Run Code Online (Sandbox Code Playgroud)
我将需要多次处理上述行的数据(> 10k)并且数据集相当大(例如,48k消费者,100个产品,24个时间段等).所以速度是一个问题.
我想出了两种处理数据的方法,我想知道哪种方法更快,或者可能无关紧要?(速度很重要,但不会以过度维护/可读性为代价):
对产品ID和时间段的数据进行排序,然后遍历数据以提取所有可能组合的数据.
存储为产品ID和时间段的特定组合提供产品分数的所有消费者的消费者ID,并相应地处理数据.
有什么想法吗?还有其他方法可以加快处理速度吗?谢谢
我不确定这是否属于Stackoverflow或超级用户,但我想我会问这里.
我有一个用C语言编写的基于控制台的应用程序,目前在Windows 7 64位操作系统中终止大约需要一个小时.任务管理器报告该应用程序仅使用可用CPU的25%.我想通过增加cpu使用来减少运行时间.
有没有办法让应用程序使用所有四个核心(笔记本电脑有Core i5)而不是一个?我假设任务管理器报告25%,因为只有一个核心被分配给该程序.
我需要使用C或C++在多列上对二维二维数组进行排序.有人能指出我应该使用的算法还是具有此功能的现有库(可能是boost?)?
我有一种感觉,写一个递归函数可能是要走的路,但我懒得写出算法或自己实现它,如果它已经在其他地方完成.:-)
谢谢
我正在尝试cut使用knitr和xtable将生成的freq表输出到PDF文件.但是,当我包含该选项时include.rownames=FALSE,不会处理输出并报告错误,而代码可以使用include.rownames=TRUE.测试代码如下:
\documentclass[12pt]{article}
\begin{document}
<<test_table, results = "asis",echo=FALSE>>=
library(xtable)
x <- sample(10,100,replace=TRUE)
breaks <- c(1,2,5,10)
x.freq <- data.frame(table(cut(x, breaks, right=FALSE)))
print(xtable(x.freq),include.rownames=TRUE)
@
\end{document}
Run Code Online (Sandbox Code Playgroud)
当我使用时,include.rownames=TRUE我得到下面的输出.
1 [1,2] 5
2 [2,5] 35
3 [5,10] 49
而当我使用时,include.rownames=FALSE我得到一个错误:
Test.tex:71:LaTeX错误:输入行58上的\ begin {tabular}以\ end {document}结束.
我相信我得到错误是因为文本源中存在方括号'['.
有谁知道如何解决这个问题?