R的默认行为的设计决策是针对交互式使用进行微调的,但是在大型代码库中运行时可能会导致不希望的行为而没有太多的用户监督.我有兴趣找到使语言更严格的方法.我有两个基本的例子.
(回收)非一致性载体在芳基化操作中循环使用:
> x=1:10
> y=1:20
> y=rep(1,20)
> x+y
[1] 2 3 4 5 6 7 8 9 10 11 2 3 4 5 6 7 8 9 10 11
Run Code Online (Sandbox Code Playgroud)
有没有办法让这个操作导致错误?
(转换)更新向量时会发生转换,有时会更改要更新的元素的类型,有时会更改向量的类型:
> x[1] <- 'a'
> x
[1] "a" "2" "3" "4" "5" "6" "7" "8" "9" "10"
> x[1] <- 1
> x
[1] "1" "2" "3" "4" "5" "6" "7" "8" "9" "10"
Run Code Online (Sandbox Code Playgroud)
有没有办法让这个操作导致错误?
我相信新用户和中级用户的许多挫折源于这些行为(这反过来导致对语言的总结判断!).任何指向解决回收和转换的一般方法的指针都非常受欢迎.
最近我经常崩溃R. 信息总是如此
*** caught segfault ***
address xxx, cause 'memory not mapped'
Run Code Online (Sandbox Code Playgroud)
再生很难,无论如何我都无法共享大型专有数据集.我的问题是:我可以报告崩溃以便对其进行调查吗?生成coredump会有帮助吗?关于报告错误的FAQ部分似乎并不适用于此意外情况.
我想用一个Java package来自R.
RJava提供了一种方法来调用Java从R,但包装所有的方法是不切实际的.
有没有人知道一个为包生成包装器的脚本(比如通过处理相关的javadoc)?
在大多数应用中(尤其是统计应用),薄SVD就足够了.然而,有时需要完整的SVD以获得矩阵(及其共轭)的零空间的正交.似乎R中的svd()只返回精简版本.是否可以生产完整版?还有替代品吗?
有没有办法给R函数一个命名输入参数序列(其中名称未在函数定义中指定)并将该序列捕获为命名列表,类似于python的*kwargs?例如:f(first=1, second=2)将在其正文中捕获并使用一个列表(第一个= 1,第二个= 2); 但 f(third=3, fourth=4, fifth=5)会使用一个列表(第三个= 3,第四个= 4,第五个= 5).当然可以将列表本身作为参数传递.这里的好处是易于使用.