小编Sha*_*bho的帖子

如何在列表中间插入元素?

我有一个包含几个元素的列表,比如10.

testList <- split(1:10,1:10)
Run Code Online (Sandbox Code Playgroud)

如何在列表中间插入一个新元素,比如位置3?

循环遍历所有元素的蛮力方式将起作用,但只是想知道是否有更优雅的方式来做到这一点?

r list insert

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

找出每个节点的名称或ID

我正在12节点集群上运行并行进程.

并且想知道在foreach调用期间是否有办法获取node-id或node-number或node-name ?

像这样的东西:

foreach(i = 1:12, .combine=c) %dopar% {node.name()}
Run Code Online (Sandbox Code Playgroud)

这将有助于处理文件.

parallel-processing foreach r

5
推荐指数
2
解决办法
1551
查看次数

如何使用data.table删除表中未使用的级别?

请考虑以下事项data.table:

x <- data.table(
          x=sample(letters[1:5],10,rep=T), 
          y=factor(sample(letters[1:5],10,rep=T), levels=letters))
Run Code Online (Sandbox Code Playgroud)

data.table在使用某些因子字段具有未使用变量的s时,会出现这种情况.

现在,如果我们使用下表:

table(x)
Run Code Online (Sandbox Code Playgroud)

一张包含所有未使用级别的巨型桌子出现了.方法中有没有table方法或data.table这样做?

我知道以下是可能的:

x$y <- factor(x$y)
Run Code Online (Sandbox Code Playgroud)

但这没用,因为我不想将每个子表保存到不同的变量.

r data.table

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

因子列上的sum(.)返回不正确的结果

我在这里遇到了一个奇怪的问题.我正在使用data.table一个非常常规的任务,但有些东西我无法解释.我已经想出了解决问题的方法,但我认为理解这里出了什么问题对我来说仍然很重要.

此代码将数据带入工作区:

library(XML)
library(data.table)
theurl <- "http://goo.gl/hOKW3a"
tables <- readHTMLTable(theurl)
new.Res <- data.table(tables[[2]][4:5][-(1:2),])
suppressWarnings(names(new.Res) <- c("Party","Cases"))
Run Code Online (Sandbox Code Playgroud)

这里有两列,PartyCases.两者都有默认类factor.虽然,Cases应该是numeric.最终,我只想要Cases每个的总和Party.所以像这样的东西应该工作:

new.Res[,sum(Cases), by=Party]
Run Code Online (Sandbox Code Playgroud)

但这并没有给出正确的答案.我想,如果我改变类的它会工作Cases,从factornumeric.所以我尝试了以下方法:

new.Res[,Cases := as.numeric(Cases)]
new.Res[,sum(Cases), by=Party]
Run Code Online (Sandbox Code Playgroud)

但我得到了同样错误的答案.我意识到这个问题是在改变类的发生Cases,从factornumeric.所以我尝试了一种不同的方法,它起作用了:

第1步:重新初始化数据:

theurl <- "http://goo.gl/hOKW3a"
tables <- readHTMLTable(theurl)
new.Res <- data.table(tables[[2]][4:5][-(1:2),])
suppressWarnings(names(new.Res) <- c("Party","Cases"))
Run Code Online (Sandbox Code Playgroud)

第2步:使用不同的方法将类更改factornumeric:

new.Res[,Cases := strtoi(Cases)]
new.Res[,sum(Cases), by=Party]
Run Code Online (Sandbox Code Playgroud)

这很好用!但是,我不确定前两种方法有什么问题.我错过了什么?

r data.table

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

无法安装 xkcd 字体

我按照小插图中给出的说明尝试使用 xkcd 字体: vignette("xkcd-intro")

但是在以下步骤中出现错误:

> system("cp xkcd.tff -t ~/.fonts")
cp: xkcd.tff: No such file or directory
cp: -t: No such file or directory
Run Code Online (Sandbox Code Playgroud)

该怎么办??

r

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

标签 统计

r ×5

data.table ×2

foreach ×1

insert ×1

list ×1

parallel-processing ×1