相关疑难解决方法(0)

在R中创建字符串连接运算符

我想知道如何在R中编写字符串连接运算符,类似于|| 在SAS中,在Java/C#中使用+或在Visual Basic中使用&.

最简单的方法是使用%创建一个特殊的运算符

`%+%` <- function(a, b) paste(a, b, sep="")
Run Code Online (Sandbox Code Playgroud)

但这会导致%代码中出现许多难看的东西.

我注意到这+是在Ops组中定义的,你可以为该组编写S4方法,所以也许这样的方法就可以了.但是,我根本没有使用S4语言功能的经验.如何修改上述功能才能使用S4?

string r string-concatenation

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

为什么"+"不对R中的字符进行操作?

叫我懒,但我只是讨厌像往常一样打字paste("a","b",sep='').

我知道"(t)他是R.不管怎样,只有如何." (library(fortunes);(fortune(109)).所以,我的后续问题是:是否有可能轻易改变这种行为?

syntax r operators

22
推荐指数
2
解决办法
1108
查看次数

R中的Currying函数

是否有可能使用钻营R

一种可能性是具有特殊paste功能(可以将其视为此处的后续操作),例如(在错误的代码中):

'%+%' <- (sep)function(x,y) paste(x,y,sep=sep)
"a"%+%("")"b"%+%("_")"c" #gives "ab_c"
Run Code Online (Sandbox Code Playgroud)

什么是可能的实现R

PS:这paste只是一个例子,我很好奇R......

r currying

20
推荐指数
2
解决办法
5304
查看次数

为R中的命名向量重载$

使用命名向量时

vec <- c(a = 1, b = 2)
Run Code Online (Sandbox Code Playgroud)

我经常发现自己vec$a在应该写的时候通过写错误vec["a"]vec[["a"]]使用相应的名称(不带名称)访问相应的值。

我认为vec$a出现错误是违反直觉的,因为$通常会提取命名的事物。这种感觉甚至似乎得到了支持,例如在?Extract示例用法为的中x$name,这是否不完美地适合命名向量?

那让我开始思考是否可能使$运算符超负荷以处理命名向量。但是,我对R中的运算符重载不是很有经验,并且我了解(例如,从这里的答案)在重载基本运算符时应谨慎。

我的互连问题:有,为什么我不应该超载的原因$描述说我不理解?也就是说,在某种程度上,这不是R中的默认值吗?如果没有,我将如何明智地这样做

我了解实际上,即使只是出于可移植性的原因,这可能不是一个好主意,但我仍然很好奇。

r

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

标签 统计

r ×4

currying ×1

operators ×1

string ×1

string-concatenation ×1

syntax ×1