我有一个包含几个元素的列表,比如10.
testList <- split(1:10,1:10)
Run Code Online (Sandbox Code Playgroud)
如何在列表中间插入一个新元素,比如位置3?
循环遍历所有元素的蛮力方式将起作用,但只是想知道是否有更优雅的方式来做到这一点?
我正在12节点集群上运行并行进程.
并且想知道在foreach
调用期间是否有办法获取node-id或node-number或node-name ?
像这样的东西:
foreach(i = 1:12, .combine=c) %dopar% {node.name()}
Run Code Online (Sandbox Code Playgroud)
这将有助于处理文件.
请考虑以下事项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)
但这没用,因为我不想将每个子表保存到不同的变量.
我在这里遇到了一个奇怪的问题.我正在使用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)
这里有两列,Party
和Cases
.两者都有默认类factor
.虽然,Cases
应该是numeric
.最终,我只想要Cases
每个的总和Party
.所以像这样的东西应该工作:
new.Res[,sum(Cases), by=Party]
Run Code Online (Sandbox Code Playgroud)
但这并没有给出正确的答案.我想,如果我改变类的它会工作Cases
,从factor
到numeric
.所以我尝试了以下方法:
new.Res[,Cases := as.numeric(Cases)]
new.Res[,sum(Cases), by=Party]
Run Code Online (Sandbox Code Playgroud)
但我得到了同样错误的答案.我意识到这个问题是在改变类的发生Cases
,从factor
到numeric
.所以我尝试了一种不同的方法,它起作用了:
第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步:使用不同的方法将类更改factor
为numeric
:
new.Res[,Cases := strtoi(Cases)]
new.Res[,sum(Cases), by=Party]
Run Code Online (Sandbox Code Playgroud)
这很好用!但是,我不确定前两种方法有什么问题.我错过了什么?
我按照小插图中给出的说明尝试使用 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)
该怎么办??