小编Jan*_*ary的帖子

dev.hold,dev.flush和调整窗口大小

在R中,可以握住设备,绘制图片,然后刷新设备以渲染图形.这对于具有数千个数据点,颜色梯度等的非常复杂的绘图非常有用,因为在没有保持的情况下,设备将在每次绘图操作之后刷新.它运作得很好.

但是,一旦绘图到位,任何窗口操作(如调整大小)都会导致绘图刷新 - 但是,这次没有保持和刷新设备,而是逐个绘制绘图元素并每次刷新显示.这非常烦人.

显然,我可以dev.hold在调整窗口大小之前手动调用,但这不是一个真正的解决方案.

有没有办法告诉R设备应该暂停进行大小调整等操作?

r device window-resize

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

在C中读取.CSV文件

我有一个.csv文件:

lp;imie;nazwisko;ulica;numer;kod;miejscowosc;telefon;email;data_ur
1;Jan;Kowalski;ul. Nowa;1a;11-234;Budry;123-123-456;jan@go.xxx;1980.05.13
2;Jerzy;Nowak;ul. Konopnicka;13a/3;00-900;Lichowice;(55)333-44-55;jer@wu.to;1990.03.23
Run Code Online (Sandbox Code Playgroud)

我需要在C中阅读.我有一些代码,但仅用于连接.

c csv parsing

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

来自插入符号中训练数据的ROC曲线

使用R包插入符号,如何根据train()函数的交叉验证结果生成ROC曲线?

说,我做以下事情:

data(Sonar)
ctrl <- trainControl(method="cv", 
  summaryFunction=twoClassSummary, 
  classProbs=T)
rfFit <- train(Class ~ ., data=Sonar, 
  method="rf", preProc=c("center", "scale"), 
  trControl=ctrl)
Run Code Online (Sandbox Code Playgroud)

训练函数遍历一系列mtry参数并计算ROC AUC.我想看看相关的ROC曲线 - 我该怎么做?

注意:如果用于采样的方法是LOOCV,那么rfFit将在rfFit$pred插槽中包含一个非空数据帧,这似乎正是我所需要的.但是,我需要用于"cv"方法(k-fold验证)而不是LOO.

另外:不,roc曾经包含在以前版本的插入符中的函数不是答案 - 这是一个低级函数,如果您没有每个交叉验证样本的预测概率,则不能使用它.

r roc r-caret

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

使用pandoc在reveal.js中滑动1级和2级

我在markdown中生成幻灯片,通过pandoc转换为html(with pandoc -s -S -t revealjs test.md -o test.html).

reveal.js框架允许2D设置:在幻灯片子集内"垂直"分组幻灯片,并水平分组幻灯片子集.在降价时,它可以像这样实现:

# Head1

## Below 1

text below 1

## Below 2

text below 2

# Head 2
Run Code Online (Sandbox Code Playgroud)

这会生成预期的输出.结果有四张幻灯片,排列如下:

[  Head 1 ] [ Head 2 ]
[ Below 1 ]
[ Below 2 ]
Run Code Online (Sandbox Code Playgroud)

不过,我想在"Head 1"幻灯片中有更多内容.这在reveal.js中是可能的,但pandoc未正确处理以下markdown:

# Head1

Head text 1

## Below 1

text below 1

## Below 2

text below 2

# Head 2
Run Code Online (Sandbox Code Playgroud)

因为幻灯片级别变为1而不是2,而不是四个幻灯片,我得到两个(每个级别1标题一个).我可以使用pandoc选项强制滑动级别为2:

pandoc -s -S -t revealjs test.md -o test.html --slide-level 2 …
Run Code Online (Sandbox Code Playgroud)

pandoc reveal.js

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

R列表 - 如何处理元素名称?

我注意到了这个意外的功能:

foo <- list(whatever=1:10)
Run Code Online (Sandbox Code Playgroud)

现在,以下工作原理:

foo$wha
foo$w
foo$whateve
Run Code Online (Sandbox Code Playgroud)

但是,以下内容不是:

foo[["wha"]]
Run Code Online (Sandbox Code Playgroud)

这会产生意想不到的后果(对我而言是意料之外的),如果您有两个潜在的名称,例如" CXCL1 "和" CXCL11 ",并且您想通过检查知道CXCL1是否为空!is.null(foo$CXCL1),则即使CXCL1也会返回TRUE null,但CXCL11不是.

我的问题是:

  1. 这是如何运作的?
  2. foo$whatever和之间有什么区别foo[["whatever"]]
  3. 为什么有人想要这种行为以及如何禁用它?

syntax r list

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

R:使用省略号参数(...)

我想创建一个替换一些默认参数的包装函数.

这是我正在努力解决的问题的核心:

Error in localWindow(xlim, ylim, log, asp, ...) : 
  formal argument "cex" matched by multiple actual arguments
Run Code Online (Sandbox Code Playgroud)

现在有点上下文.假设我为这样的情节定义了一个包装函数:

myplot <- function(x, ... ) {
    plot(x, cex= 1.5, ... )
}
Run Code Online (Sandbox Code Playgroud)

如果我打电话,myplot( 1:10, cex= 2 )我会得到上述错误.我知道我可以转到...清单

l <- list(...)
Run Code Online (Sandbox Code Playgroud)

然后我就能做到

if( is.null( l[["cex"]] ) ) l[["cex"]] <- 2
Run Code Online (Sandbox Code Playgroud)

但是,如何将此列表"插入"省略号参数?像(我知道这不起作用):

... <- l
Run Code Online (Sandbox Code Playgroud)

编辑:我可以在myplot定义中使用默认值(如@Thomas的答案所示),但我不想:函数接口将变得混乱.我想我可以像这样定义一个辅助函数:

 .myfunchelper <- function( x, cex= 2.0, ... ) {
   plot( x, cex= cex, ... )
 }

 myfunc <- function( x, ... …
Run Code Online (Sandbox Code Playgroud)

r ellipsis

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

打印指针值与数组的区别

我对打印指针值和数组有疑问。

int arr[5] = { 1, 2, 3, 4, 5 };
int * ptr = arr;

for (int i = 0; i < 5; i++) {
    (*ptr) += 2;
    ptr++;
    printf("%d", (*ptr));
}
Run Code Online (Sandbox Code Playgroud)

以上是我首先输入的内容,但没有用。所以我擦除了printf行,并输入了一个新的代码。而且有效。

for (int i = 0; i < 5; i++) {
    printf("%d ", arr[i]);
}
Run Code Online (Sandbox Code Playgroud)

我知道第二个为什么起作用,但仍然不明白第一个为什么不能起作用。

预期输出为3 4 5 6 7,但第一个代码的实际输出为2 3 4 5 -858993460

c

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

创建具有200行且没有列的空数据框

我就是这样做的:

df <- data.frame(a=1:200)
df$a <- NULL
df
Run Code Online (Sandbox Code Playgroud)

结果:

data frame with 0 columns and 200 rows
Run Code Online (Sandbox Code Playgroud)

只用一个命令就可以实现同样的目的吗?

r dataframe

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

将行添加到具有缺失值的数据框

所以我有这个数据框

df <- data.frame( A=1:10, B=LETTERS[1:10], C=letters[1:10], stringsAsFactors= F )
Run Code Online (Sandbox Code Playgroud)

我想在A = 11和C ="K"的数据框中添加一行,但我没有关于C列的信息.事实上,我不知道先验是什么其他列在那里数据框,A和B除外.这些缺失的列应该得到NA.我能想到的最好的是:

tmp <- rep( NA, ncol( df ) ) # Batman!
df <- rbind( df, tmp )
df[ nrow( df ), "A" ] <- 11
df[ nrow( df ), "B" ] <- "K"
Run Code Online (Sandbox Code Playgroud)

有更简单的方法吗?

r dataframe

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

重新排序R data.frame的子集,同时修改行名称

给定data.frame:

foo <- data.frame(ID=1:10, x=1:10)
rownames(foo) <- LETTERS[1:10]
Run Code Online (Sandbox Code Playgroud)

我想重新排序由行名称定义的行的子集.但是,我想交换foo的行名.我可以

sel <- c("D", "H") # rows to reorder
foo[sel,] <- foo[rev(sel),]
sel.wh <- match(sel, rownames(foo))
rownames(foo)[sel.wh] <- rownames(foo)[rev(sel.wh)]
Run Code Online (Sandbox Code Playgroud)

但这很漫长而复杂.有更简单的方法吗?

r dataframe

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

标签 统计

r ×7

dataframe ×3

c ×2

csv ×1

device ×1

ellipsis ×1

list ×1

pandoc ×1

parsing ×1

r-caret ×1

reveal.js ×1

roc ×1

syntax ×1

window-resize ×1