小编Joh*_*tte的帖子

R中的定义变量列表

我在linux中使用R,只在命令行中使用.

一段时间后回到项目中,我忘记了我使用的变量名,并且R命令历史记录不包含它们.

我似乎记得有一个命令列出了所有用户定义的变量,但不记得它是什么,并且无法在网上找到它.

如何在R中列出所有用户定义的变量?

r

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

强制"date"使用机器默认值以外的区域设置

有没有办法强制*nix命令"date"以独立于本地的特定格式输出?例如,如果我今天打电话给"date -u",我会在美国机器上得到:

Mon Oct 15 13:15:29 UTC 2012
Run Code Online (Sandbox Code Playgroud)

但在德国的机器上我得到:

Mo 15. Okt 13:15:31 UTC 2012
Run Code Online (Sandbox Code Playgroud)

unix bash date

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

如何增加R中命令历史的长度?

在R中,我喜欢使用反向搜索(ctrl + r)来重做不常见但复杂的命令而不使用脚本.通常,我会在其间执行许多其他命令,命令历史记录会丢弃旧命令.如何更改命令历史记录的默认长度?

r

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

为什么静态成员函数_declared_是静态的,否则_defined_否则在C++中?

这是一个最小的工作示例:

啊:

class A{
        static int a_member_function();
};
Run Code Online (Sandbox Code Playgroud)

A.cpp

#include "A.h"
int A::a_member_function(){return 5;}


int main(){ return 1;}
Run Code Online (Sandbox Code Playgroud)

这段代码编译并运行,但在我看来:

static int A::a_member_function(){return 5;}
Run Code Online (Sandbox Code Playgroud)

可以很容易地用来定义类A的静态成员函数.实际上,似乎它实际上对于满足这个要求是非常有用的,因为它会提醒读者.cpp文件a_member_function是静态的.

但是,这显然不起作用:

error: cannot declare member function ‘static int A::a_member_function()’ to have static linkage [-fpermissive]
Run Code Online (Sandbox Code Playgroud)

为什么不起作用呢?这个决定背后的原因是什么?

c++ static static-methods scope

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

每次运行时,如何避免打印R脚本?

假设我有一个R脚本:

library('nnet')    
something <- runif(50); 
print(something) 
Run Code Online (Sandbox Code Playgroud)

当我从命令行运行此脚本时,它会打印:

> library('nnet')
> something <- runif(5); 
> print(something)
 [1] 0.04665518 0.93574275 0.96387299 0.07410239 0.92834019
Run Code Online (Sandbox Code Playgroud)

我希望它只打印:

[1] 0.04665518 0.93574275 0.96387299 0.07410239 0.92834019
Run Code Online (Sandbox Code Playgroud)

我无法弄清楚如何做到这一点.sink("/ dev/null")没有做任何事情,手动重定向stderr没有做任何事情,我找不到任何有用的信息.

r r-faq

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

是否可以使用预处理器(宏)将C字符串文字转换为大写?

忽略有时候有更好的非宏方式来做这件事(遗憾的是我有充分的理由),我需要使用宏编写一大堆通用代码.本质上是一个宏库,它将为某些预先指定的类型生成大量函数.

为了避免破坏大量预先存在的单元测试,库必须做的一件事是,对于每种类型,在所有大写字母中生成该类型的名称以进行打印.例如,类型"标志"必须打印为"标记".

我可以手动写出每种类型的常量,例如

#define flag_ALLCAPSNAME标志

但这并不理想.我希望能够以编程方式执行此操作.

目前,我一起攻击了这个:

char capname_buf[BUFSIZ];
#define __MACRO_TO_UPPERCASE(arg) strcpy(capname_buf, arg); \
 for(char *c=capname_buf;*c;c++)*c = (*c >= 'a' && *c <= 'z')? *c - 'a' + 'A': *c;
__MACRO_TO_UPPERCASE(#flag)
Run Code Online (Sandbox Code Playgroud)

我在某种程度上做了我想做的事情(即在这段代码之后,capname_buf将"FLAG"作为其内容),但我更喜欢一种允许我使用宏来定义字符串文字的解决方案,避免了对此的需要愚蠢的缓冲.

我看不出怎么做,但也许我错过了一些明显的东西?

我有一个可变的foreach循环宏写(像这一个),但我不能改变#flag生成的字符串文字的内容,并且无论如何,我的循环宏需要一个字符指针列表来迭代(即它迭代列表,而不是索引等.

思考?

c macros c-preprocessor

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

为什么naiveBayes会返回R中所有NA的多类分类?

开始写这个问题,然后想出答案.要把它放在这里作为后代,因为很难找到答案.

我正在尝试使用e1071包中的naiveBayes分类器.它似乎可以毫无困难地为新数据生成预测,但实际上我需要对新数据类的概率估计.

例:

> model <- naiveBayes(formula=as.factor(V11)~., data=table, laplace=3)
> predict(model, table[,1:10]) 
[1] 4 4 4 4 4 4 4 4 1 1 1 3 3 1 1
> predict(model, table[,1:10], type="raw")
       1  2  3  4
 [1,] NA NA NA NA
 [2,] NA NA NA NA
 [3,] NA NA NA NA
 [4,] NA NA NA NA
 [5,] NA NA NA NA
 [6,] NA NA NA NA
 [7,] NA NA NA NA
 [8,] NA NA NA NA
 [9,] NA …
Run Code Online (Sandbox Code Playgroud)

r

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

为什么有符号整数的绝对值方法不返回无符号值?

以下代码无法编译:

fn main() {
    let x = (-5i32).abs();

    let z: u32 = x;
}
Run Code Online (Sandbox Code Playgroud)

随着消息:

error[E0308]: mismatched types
 --> src/main.rs:4:18
  |
4 |     let z: u32 = x;
  |                  ^ expected u32, found i32
Run Code Online (Sandbox Code Playgroud)

阅读文档,它看起来选择i32源于i32::min_value()没有积极表现的事实i32.然而,这有积极的表现u32,可以两次表示数字大.

我正在学习这门语言,并想了解为什么做出某些设计决定,以便养成良好的习惯.我觉得这个令人困惑.有人可以解释为什么它以这种方式工作而不是只返回一个u32,这似乎是语义上正确的类型?

rust

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

如何在R图中的左角出现零刻度?

使用'plot'命令在R中生成绘图,并将左侧x轴限制设置为零,例如,

plot(x=c(1:10), y=c(1:10), xlim=c(0,10), ylim=c(0,10))
Run Code Online (Sandbox Code Playgroud)

R,由于我不明显的原因,在点(0,0)和左下角(也在顶部)之间放置了一堆额外的空间.

我可以通过手动猜测偏移来获得我想要的图形,并相应地调整左下轴限制:

plot(x=c(1:10), y=c(1:10), xlim=c(0.38,10), ylim=c(0.38,10))
Run Code Online (Sandbox Code Playgroud)

但问题是,我必须手动为每个图表执行此操作,这似乎过多.

是否有用于删除此边距的par-type设置?

r graph

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

在C中有效地从文本文件中有效地选择随机行?

这本质上是这个问题的一个受限制的版本.

假设我们有一个非常大的文本文件,包含大量的行.

我们需要从文件中随机选择一条线,具有统一的概率,但是存在约束条件:

  • 因为这是一个软实时应用程序,所以我们无法迭代整个文件.选择应该花费不变的时间.
  • 由于内存限制,无法缓存文件.
  • 由于允许在运行时更改文件,因此不能将文件的长度假定为常量.

我的第一个想法是使用lstat()调用以字节为单位获取总文件大小.fseek()然后可以用来直接访问随机字节偏移量,将类似O(1)的内容访问到文件的随机部分.

问题是我们不能再做一些事情,比如读到下一个换行符并将其称为一天,因为这会产生偏向长线的分布.

我解决这个问题的第一个想法是读取直到第一个"n"换行符(如果需要,回到文件的开头),然后从这个较小的集合中选择一个具有统一概率的行.可以安全地假设文件的内容是随机排序的,因此这个子样本在长度上应该是统一的,并且,由于它的起始点是从所有可能的点统一选择的,所以它应该代表从文件中统一选择的整个.所以,在伪C中,我们的算法看起来像:

 lstat(filepath, &filestat);
 fseek(file, (int)(filestat.off_t*drand48()), SEEK_SET);
 char sample[n][BUFSIZ];
 for(int i=0;i<n;i++)
     fgets(sample[i], BUFSIZ, file); //plus some stuff to deal with file wrap around...
 return sample[(int)(n*drand48())];
Run Code Online (Sandbox Code Playgroud)

这似乎不是一个特别优雅的解决方案,我并不完全相信它会是统一的,所以我想知道是否有更好的方法来做到这一点.有什么想法吗?

编辑:进一步考虑,我现在很确定我的方法不统一,因为起点更可能在更长的单词内,因此不统一.整蛊!

c random random-access

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

标签 统计

r ×5

c ×2

bash ×1

c++ ×1

c-preprocessor ×1

date ×1

graph ×1

macros ×1

r-faq ×1

random ×1

random-access ×1

rust ×1

scope ×1

static ×1

static-methods ×1

unix ×1