小编Ron*_*Ron的帖子

在R中的稀疏矩阵上运行cor()(或任何变量)

当尝试cor()在稀疏矩阵(dgCMatrix或dgTMatrix类型)上运行该函数时,我收到以下错误:

Error in cor(x) : supply both 'x' and 'y' or a matrix-like 'x'
Run Code Online (Sandbox Code Playgroud)

将我的矩阵转换为密集将是非常低效的.有没有一种简单的方法来计算这种相关性(没有所有对循环?).

谢谢,

  • 罗恩

r

21
推荐指数
3
解决办法
9449
查看次数

在Python中并行处理大型.csv文件

我正在使用Python脚本处理大型CSV文件(大约有几GB的10M行).

这些文件具有不同的行长度,无法完全加载到内存中进行分析.

每行都由我的脚本中的函数单独处理.分析一个文件大约需要20分钟,看起来磁盘访问速度不是问题,而是处理/函数调用.

代码看起来像这样(非常简单).实际代码使用Class结构,但这类似:

csvReader = csv.reader(open("file","r")
for row in csvReader:
   handleRow(row, dataStructure)
Run Code Online (Sandbox Code Playgroud)

鉴于计算需要共享数据结构,使用多个内核在Python中并行运行分析的最佳方法是什么?

一般来说,如何从Python中的.csv一次读取多行以传输到线程/进程?for在行上方循环听起来效率不高.

谢谢!

python

18
推荐指数
3
解决办法
2万
查看次数

多维数组与列表元组列表

我正在写一些代码来执行一些博弈论模拟.我的"世界"有几个状态(在我的情况下说2个),它也有几个玩家(同样,2个),每个玩家都有一个支付矩阵(2乘2).

我尝试在R中创建以下多维数组:

U = array(2,2,2,2)
U[1][1] = cbind(c(0.7,0.3),c(0.3,0.7))
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

number of items to replace is not a multiple of replacement length
Run Code Online (Sandbox Code Playgroud)

我可以转到使用列表,其中每个项目将是两个项目A和B的列表,其中A和B是2x2矩阵.但是,我认为在列表上执行操作会变得很慢,并且矢量化很难.

是否有关于正确实施的建议或对上述代码无效的原因的解释?

更新:显然正确的语法是:

U[1,1, , ] = cbind(c(0.7,0.3),c(0.3,0.7))
Run Code Online (Sandbox Code Playgroud)

我的问题仍然存在 - 哪个更好,多维向量或元组列表?

谢谢,

  • 罗恩

r

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

什么类似于R中的#ifdef DEBUG?

我正在编写R代码,我想让它以"非调试"或"调试"模式运行.在调试模式下,我希望代码打印出运行时信息.

在其他语言中,我通常会有某种打印功能,除非打开一个标志(用于编译或运行时),否则它什么都不做.

例如,我可以使用#ifdef DEBUG(在编译时),或者在运行时设置调试级别.

在R中这样做的等价方法是什么?

r

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

"在Windows上使用多处理时,无法选择<type'_csv.reader'>"错误

我正在编写一个多处理程序来使用Windows并行处理大型.CSV文件.

我找到了一个类似问题的优秀例子.在Windows下运行时,我收到一个错误,即csv.reader不是Picklable.

我想我可以在阅读器子流程中打开CSV文件,只需从父进程发送文件名即可.但是,我想传递一个已打开的CSV文件(就像代码应该这样做),具有特定的状态,即真正使用共享对象.

任何想法如何在Windows下或那里缺少什么?

这是代码(我为了便于阅读而重新发布):

"""A program that reads integer values from a CSV file and writes out their
sums to another CSV file, using multiple processes if desired.
"""

import csv
import multiprocessing
import optparse
import sys

NUM_PROCS = multiprocessing.cpu_count()

def make_cli_parser():
    """Make the command line interface parser."""
    usage = "\n\n".join(["python %prog INPUT_CSV OUTPUT_CSV",
            __doc__,
            """
ARGUMENTS:
    INPUT_CSV: an input CSV file with rows of numbers
    OUTPUT_CSV: an output file that will contain the sums\
"""])
    cli_parser …
Run Code Online (Sandbox Code Playgroud)

python

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

如何在不使用lapply的情况下将列表列表转换为R中的稀疏矩阵?

我有一个由bigsplit()操作产生的列表列表(来自biganalytics包,bigmemory包的一部分).

每个列表表示矩阵中的列,并且每个列表项是二进制矩阵中值1的索引.

将此列表转换为稀疏二进制(0/1)矩阵的最佳方法是什么?在lapply()中使用lapply()是唯一的解决方案吗?如何将列表命名为列的名称?

r sparse-matrix

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

标签 统计

r ×4

python ×2

sparse-matrix ×1