相关疑难解决方法(0)

什么是R中的替换功能?

我搜索了一个参考,以了解R中的替换函数,但我还没有找到.我试图理解R中替换函数的概念.我有下面的代码,但我不明白它:

"cutoff<-" <- function(x, value){
 x[x > value] <- Inf
 x
 }
Run Code Online (Sandbox Code Playgroud)

然后我们用以下方式调用cutoff:

 cutoff(x) <- 65
Run Code Online (Sandbox Code Playgroud)

谁能解释R中的替换功能是什么?

r

48
推荐指数
3
解决办法
6085
查看次数

为什么使用分配不好?

这篇文章(在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的assign()函数何时适用?

我经常看到新手R程序员的问题,他们习惯于assign创建多个对象,然后在尝试为后续任务操作这些对象时遇到麻烦(最近的一个例子).

assign吸引新手用户,因为它具有动态属性(以编程方式创建变量名称,除了变量的值),并且似乎模仿了全局赋值的一些属性.它的直接名称也使它可能出现在各种问题类型的搜索中.

当然,更有经验的R程序员开始意识到assign创建难以阅读的代码,易于维护的代码,以及通过在高功能R语言中坚决避免的副作用类型的行为.

我在SO最初使用的所有问题上看到的每个问题assign最终在正确使用命名向量,列表或数据帧方面有更好的选择.生成的代码更易于遵循,更易于更改,并且通常性能更高.

所有这一切都是说,很容易找到为什么assign不好的例子.我的问题是:在什么情况下使用assign适当的,首选的或唯一的解决方案

r

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

标签 统计

r ×3

assign ×1