小编asb*_*asb的帖子

为什么使用分配不好?

这篇文章(在R中的懒惰评估是指派受影响吗?)涵盖了一些共同点,但我不确定它是否回答了我的问题.

assignapply很久以前发现这个家庭的时候就停止了使用,虽然,纯粹出于以下情况的优雅原因:

names.foo <- letters
values.foo <- LETTERS
for (i in 1:length(names.foo))
  assign(names.foo[i], paste("This is: ", values.foo[i]))
Run Code Online (Sandbox Code Playgroud)

可以替换为:

foo <- lapply(X=values.foo, FUN=function (k) paste("This is :", k))
names(foo) <- names.foo
Run Code Online (Sandbox Code Playgroud)

这也是本(其理由http://cran.r-project.org/doc/FAQ/R-FAQ.html#How-can-I-turn-a-string-into-a-variable_003f)R-FAQ说这应该避免.

现在,我知道这assign通常是不受欢迎的.但还有其他原因我不知道吗?我怀疑它可能会与范围或懒惰的评估混乱,但我不确定?演示此类问题的示例代码将非常棒.

r assign

34
推荐指数
3
解决办法
6655
查看次数

R:`split`保持因子的自然顺序

split将按字典顺序排序分割.在某些情况下,人们宁愿保留自然秩序.人们总是可以实现手动滚动功能,但有一个基本的R解决方案吗?

可重复的例子:

输入:

  Date.of.Inclusion Securities.Included Securities.Excluded yearmon
1        2013-04-01          INDUSINDBK             SIEMENS  4 2013
2        2013-04-01                NMDC               WIPRO  4 2013
3        2012-09-28               LUPIN                SAIL  9 2012
4        2012-09-28          ULTRACEMCO                STER  9 2012
5        2012-04-27          ASIANPAINT                RCOM  4 2012
6        2012-04-27          BANKBARODA              RPOWER  4 2012
Run Code Online (Sandbox Code Playgroud)

split 输出:

R> split(nifty.dat, nifty.dat$yearmon)
$`4 2012`
  Date.of.Inclusion Securities.Included Securities.Excluded yearmon
5        2012-04-27          ASIANPAINT                RCOM  4 2012
6        2012-04-27          BANKBARODA              RPOWER  4 2012

$`4 2013`
  Date.of.Inclusion Securities.Included Securities.Excluded yearmon
1        2013-04-01          INDUSINDBK             SIEMENS  4 2013
2 …
Run Code Online (Sandbox Code Playgroud)

split r

14
推荐指数
1
解决办法
3049
查看次数

熊猫:删除重复索引的所有记录

我有一个数据集,可能有重复的标识符记录appkey.理想情况下,重复的记录应该不存在,因此我将它们视为数据收集错误.我需要删除appkey多次出现的所有实例.

drop_duplicates方法在这种情况下是无效的(或者是?),因为它选择了第一个或最后一个重复项.是否有任何明显的成语用熊猫实现这一目标?

duplicates pandas

11
推荐指数
2
解决办法
2092
查看次数

numpy:复制值默认为整数索引与布尔索引

我最近开始研究McKinney的Python用于数据分析.这使我在书中绊倒了:

数组切片是原始数组的视图.这意味着数据不会被复制,对视图的任何修改都将反映在源数组中......由于NumPy的设计考虑了大数据用例,如果NumPy坚持将数据复制到左边,你可以想象性能和内存问题.对.

精细.似乎是一个明智的设计选择.但两页之后它说:

通过布尔索引从数组中选择数据始终会创建数据的副本,即使返回的数组未更改也是如此.

等等,什么?也,

您甚至可以将布尔数组与切片混合和匹配...例如 data[names == 'Bob', 2:]

那会有什么回报呢?对数据副本的看法?为什么这种行为是这样的呢?来自R,我看到布尔索引和基于位置的索引同样经常使用的技术.如果NumPy的设计旨在避免复制内存,那么推动这种设计选择的因素是什么呢?

谢谢.

python arrays numpy

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

R:关于内存管理的说明

假设我有一个矩阵bigm.我需要使用这个矩阵的随机子集并将其提供给机器学习算法,比如说svm.矩阵的随机子集仅在运行时才知道.此外,还有其他参数也可以从网格中选择.

所以,我的代码看起来像这样:

foo = function (bigm, inTrain, moreParamsList) {
  parsList = c(list(data=bigm[inTrain, ]), moreParamsList)
  do.call(svm, parsList)
}
Run Code Online (Sandbox Code Playgroud)

我想知道的是R是否使用新内存bigm[inTrain, ]在parsList中保存该对象.(我的猜测确实如此.)我可以使用哪些命令来测试这些假设?另外,有没有一种方法在不使用新内存的情况下在R中使用子矩阵?

编辑:

另外,假设我foo使用mclapply(在Linux上)调用bigm驻留在父进程中.这是否意味着我正在制作mc.cores副本bigm或所有核心只使用父级的对象?

跟踪内存位置和在不同内核中生成的对象消耗的任何功能和启发式算法?

谢谢.

memory r bigdata

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

Lisp:带有&amp;可选和&amp;body的defmacro

我写了一个快速但肮脏的宏来计时 Lisp 代码。然而,我现在面临的问题是我想在函数中包含一个可选的输出流。但是,我不知道&optional如何&bodydefmacro. 我寻找了一些例子,但只找到了那些defun我认为我理解的例子。我无法弄清楚为什么这对我来说失败了。任何提示:

(defmacro timeit (&optional (out-stream *standard-output*) (runs 1) &body body)
  "Note that this function may barf if you are depending on a single evaluation
  and choose runs to be greater than one. But I guess that will be the
  caller's mistake instead."
  (let ((start-time (gensym))
        (stop-time (gensym))
        (temp (gensym))
        (retval (gensym)))
    `(let ((,start-time (get-internal-run-time))
           (,retval (let ((,temp))
                      (dotimes (i ,runs ,temp)
                        (setf ,temp ,@body))))
           (,stop-time (get-internal-run-time)))
       (format ,out-stream
               "~CTime …
Run Code Online (Sandbox Code Playgroud)

lisp sbcl common-lisp

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

如何用R中的网格绘制非线性决策边界?

我在ISLR(图2.13)或ESL中找到了这个特殊的图表.我无法猜测作者是如何在R中做到这一点的.我知道如何轻松获得橙色和蓝色点.主要的困惑是背景点和紫色线.

有任何想法吗?图2.13,ISLR

下面是一些示例代码,用于获取带有灰色网格的黄色和橙色点.如何获得紫色的任意非线性曲线,然后根据曲线为网格着色?

set.seed(pi)
points = replicate(100, runif(2))
pointsColored = ifelse(apply(points, 2, sum) <= 1, "orange", "blue")
# Confound some
pointsColored[sample.int(length(pointsColored), 10)] = "orange"
plot(x=points[1, ], y=points[2, ])
grid(nx=100, ny=100)
# Plot points over the grid.
points(x=points[1, ], y=points[2, ], col=pointsColored)
Run Code Online (Sandbox Code Playgroud)

plot r

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

正则表达式加入单个字符

嗨,我正在尝试设计一个正则表达式来加入字符串中单个字符的任何连续实例.让我举个例子:

'A B C Industries' => 'ABC Industries'
'Industries A B C' => 'Industries ABC'
'Foo A B C Industries' => 'Foo ABC Industries'
'Foo A B C Industries X Y Z Product' => 'Foo ABC Industries XYZ Product'
Run Code Online (Sandbox Code Playgroud)

等等

以下是我做过的两次尝试(都不完整):

1)

''.join(r'(?<=\s\S)\s|(?<=^\S)\s')
Run Code Online (Sandbox Code Playgroud)

2)

'\S+'.findall()
Run Code Online (Sandbox Code Playgroud)

然后循环输出.

是否有一个可以一举做到这一点的正则表达式?

python regex

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

标签 统计

r ×4

python ×2

arrays ×1

assign ×1

bigdata ×1

common-lisp ×1

duplicates ×1

lisp ×1

memory ×1

numpy ×1

pandas ×1

plot ×1

regex ×1

sbcl ×1

split ×1