小编gap*_*ppy的帖子

R - 最长的共同子串

有没有人知道R包解决了最长的常见子串问题?我正在寻找可以对矢量起作用的快速的东西.

string substring r longest-substring

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

R中指针的解决方法?

我最近在R中实现了二叉树搜索算法,在此之前我使用了类似链接的数组结构.如果R中有指针(不是C指针,而是对象的引用),这些算法会容易得多.我想知道是否有解决方法.我根本不认识S4; 也许在那个框架中有可能?我会避免与环境相关的技巧,因为传递引用有点过于复杂.我会避免调用C或C++的STL.毕竟这是一个R问题.

pointers r

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

计算R语言

如果我想在RI中打印表示对象的符号,可以使用quote():

> X <- list()
> print(quote(X))
X
>
Run Code Online (Sandbox Code Playgroud)

但是,如果我有这个功能

h <- function(Y){
     quote(Y)
}
Run Code Online (Sandbox Code Playgroud)

然后

> h(X)
Y
>
Run Code Online (Sandbox Code Playgroud)

在R中是否可以编写这样的函数

> h(X)
X
Run Code Online (Sandbox Code Playgroud)

r

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

将R连接到Java

rjava至R连接到Java的唯一途径?我问,因为网页末尾有免责声明:

此接口使用Java反射API来查找正确的方法,因此它更慢并且可能不正确(适用于简单示例,但可能不适用于更复杂的示例).目前,在程序中不鼓励使用它,因为它可能在将来发生变化.

这有点令人担忧.你是如何解决这个问题的?我知道Rweka有一个独立的界面,所以我可能会考虑那个包,但也许很多R用户已经经历过这些痛苦.

java r

7
推荐指数
2
解决办法
857
查看次数

在环境中分配列表属性

标题是自成一体的问题.一个例子澄清了它:考虑一下

x=list(a=1, b="name")
f <- function(){
    assign('y[["d"]]', FALSE, parent.frame() )
}
g <- function(y) {f(); print(y)}

g(x)

$a
[1] 1

$b
[1] "name"
Run Code Online (Sandbox Code Playgroud)

而我想得到

g(x)

$a
[1] 1

$b
[1] "name"

$d
[1] FALSE
Run Code Online (Sandbox Code Playgroud)

一些评论.我知道我的原始例子中有什么问题,但我用它来明确我的目标.我想避免使用<< - ,并希望在父框架中更改x.

我认为我对环境的理解是原始的,任何引用都是值得赞赏的.

environment r

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

R中核矩阵的快速计算

我有一个nxp矩阵,想要计算定义为的nxn矩阵B.

B[i, j] = f(A[i,], A[j,])
Run Code Online (Sandbox Code Playgroud)

其中f是接受适当维度的参数的函数.在R中计算这个有一个巧妙的技巧吗?f是对称的和肯定的(如果这有助于计算).

编辑:Praneet要求指定f.这是一个好点.虽然我认为为任何函数提供有效的解决方案会很有意思,但在f(x,y)为base :: norm(xy,type ='F'的重要情况下,我会从高效计算中获得很多里程数. ).

r matrix

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

矩阵丢失R中的类属性

请考虑以下代码:

> A <- matrix(1:12, ncol=4)
> colnames(A) <- letters[1:4]
> class(A) <- c("foo", "matrix")
Run Code Online (Sandbox Code Playgroud)

当A是子集时,它会丢失"foo"类标签:

> class(A[1:2,])
[1] "matrix"
Run Code Online (Sandbox Code Playgroud)

矢量也是如此.然而,data.frames不会发生同样的情况:

> B <- as.data.frame(A)
class(B) <- c("foo", "data.frame")
> class(B[1:2,])
[1] "foo"        "data.frame"
Run Code Online (Sandbox Code Playgroud)

通常,将泛型函数应用于对象会保留class属性.不适用于矩阵/数字/整数对象.为什么?并且可以避免这种行为吗?

oop r r-s3

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

作为 Data.Map 值的异构类型

我希望能够做这样的事情,这显然是不允许的。

import qualified Data.Map as Map
x = Map.fromList [ 
      ("Name",    ["John", "Steve", "Kelly", "Zoe"]), 
      ("Surname", ["Smith", "Lee", "Ng", "White"]), 
      ("Age",     [1, 2, 3, 4]) 
    ]
Run Code Online (Sandbox Code Playgroud)

一种可能的解决方案是创建这样的类型:

data L = LInt [Int] | LString [String]

x = Map.fromList [ 
      ("Name",    LString ["John", "Steve", "Kelly", "Zoe"]),
      ("Surname", LString ["Smith", "Lee", "Ng", "White"]), 
      ("Age",     LInt    [1, 2, 3, 4]) 
    ]
Run Code Online (Sandbox Code Playgroud)

这是不可取的。有没有更好的方法?

我的实际用例:非常广泛,我正在尝试实现 dplyr ( http://cran.r-project.org/web/packages/dplyr/vignettes/introduction.html ) 的一部分,可以将其视为“语法数据的”。Dplyr 具有用于表格数据的列和行选择以及行的分组和连接的表达式,其中行数可以是数百万,列数可以是数百。我现在关心的不是数据大小,而是生成与该包类似的功能和工作流程的能力

haskell map

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

简单代数数据类型的Functor实例

我想使用异构列表列表.为此,我定义了一个简单的代数数据类型:

data T = LInt [Int]
       | LChar [Char]
       deriving (Eq, Ord, Show)
Run Code Online (Sandbox Code Playgroud)

所以我现在可以这样:

x = [LInt [1, 2, 3], LChar "test"]
Run Code Online (Sandbox Code Playgroud)

我的问题:这种类型可以成为Functor的一个实例吗?这会很有用; 例如,选择x中列表的元素,如

fmap (!!2) LChar "test"  => 's'
Run Code Online (Sandbox Code Playgroud)

在我看来,这是不可能的.除了问题的动机之外,我相信答案可以帮助我更好地理解代数数据类型.

haskell functor algebraic-data-types

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

如何编写Show for String的实例?

我有一个关于定义类型类实例的基本问题.我使用Show类型类作为示例,我只考虑类中的函数show.像Bool这样的具体类型的Show实例很简单

instance Show Bool where
  show x = {function of x here}
Run Code Online (Sandbox Code Playgroud)

但对于String,它不是:

instance Show String where
  show x = {function of x here}
Run Code Online (Sandbox Code Playgroud)

产生可以理解的错误

Illegal instance declaration for ‘Formatter String’
  (All instance types must be of the form (T t1 ... tn)
   where T is not a synonym.
   Use TypeSynonymInstances if you want to disable this.)
In the instance declaration for ‘Formatter String’
Run Code Online (Sandbox Code Playgroud)

当然不允许以下内容:

instance Show [Char] where
  show x = {function of x here}
Run Code Online (Sandbox Code Playgroud)

我可以定义一个新类型

newtype String2 = …
Run Code Online (Sandbox Code Playgroud)

haskell typeclass

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