小编Sve*_*ger的帖子

R值为as.character(NA)

有人知道as.character(NA)的内部价值吗?有人会如何在解释器级别上表示NA字符串?换句话说,想要实现R VM的人会如何做到这一点?

我查看了R的源代码,但是我找不到NA_STRING的自解释定义,这似乎是NA字符串值的基本表示.

提前感谢所有的消遣

r virtual-machine na

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

R语言NaN + NA行为

我对R中的算术行为有疑问.请注意以下代码

> NaN + NA
[1] NaN
>
>
> NaN + as.integer(NA)
> NA
Run Code Online (Sandbox Code Playgroud)

所以,我很困惑这两个添加产生了不同的结果.有人知道这是真的想要的行为还是只是某种bug?

提前致谢

r nan na

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

R指定功能环境

我有一个关于R语言中的函数环境的问题。我知道每次在R中调用一个函数时,都会创建一个新环境E,在该环境中执行函数主体。E的父链接指向创建函数的环境。

我的问题:是否可以以某种方式指定环境E,即可以提供一种应在其中执行功能的特定环境吗?

environment r function call

4
推荐指数
3
解决办法
2468
查看次数

Groovy并发

我对Groovy线程有疑问.

我的任务是以某种方式翻译给定目录中的每个文件,并将结果输出放在另一个目录中的文件中.

我编写了以下代码,它的工作原理如下:

static def translateDir(fromDir, targetDir) {
    def allFiles = new File(fromDir).listFiles()
    def numFiles = allFiles.length

    for (i in 0..(numFiles - 1))
        translate(allFiles[i].getAbsolutePath(), targetDir)
}
Run Code Online (Sandbox Code Playgroud)

现在,我尝试将此代码并行化,如下所示:

static def translateDir(fromDir, targetDir) {
    def allFiles = new File(fromDir).listFiles()
    def numFiles = allFiles.length
    def numCores = Runtime.getRuntime().availableProcessors()

    for (i in 0..(numCores - 1)) {
        println("Thread " + i + "starting")
        Thread.start {
            for (def j = i; j < numFiles; j += numCores) {
                println("j = " + j) 
                translate(allFiles[j].getAbsolutePath(), targetDir)
            } …
Run Code Online (Sandbox Code Playgroud)

groovy multithreading

3
推荐指数
2
解决办法
2万
查看次数

C++虚方法混淆

我有一个关于继承和虚方法的基本C++问题.

请考虑以下代码:

#include <iostream>
#include <vector>
using namespace std;

class A {
public:
  virtual void f() {cout << "A\n";};
};

class B : public A {
public:
  void f() {cout << "B\n";};
};

int main() {
  A a;
  B b;
  vector<A> v;
  v.push_back(a);
  v.push_back(b);

  for (int i = 0; i < v.size(); ++i)
    v.at(i).f();
}
Run Code Online (Sandbox Code Playgroud)

如果我执行此代码,它会打印出来

A
A
Run Code Online (Sandbox Code Playgroud)

我不明白为什么它不打印

A
B
Run Code Online (Sandbox Code Playgroud)

因为"f"方法被声明为虚拟.我想知道为什么程序以这种方式运行.

提前致谢

c++ methods virtual inheritance

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