小编Zac*_*ach的帖子

使用R下载gzip压缩数据文件,提取和导入数据

这个问题的后续内容:如何使用R下载和解压缩gzip压缩文件?例如(来自UCI机器学习库),我有一个保险数据文件.如何使用R下载?

这是数据网址:http://archive.ics.uci.edu/ml/databases/tic/tic.tar.gz.

connection zip r

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

最简单的方法是启动Amazon EC2集群以用作foreach后端

我想启动一个亚马逊EC2机器集群,用于foreach在R中使用后端.理想情况下,我可以从本地机器上的R命令行完成所有操作,从本地R会话发送相关数据和命令远程集群.

我知道AWS包将帮助完成这项任务,但我真的不知道在运行startCluster()命令后该怎么做.Segue也让我成为那里的一部分,但它不是后端foreach,它似乎不支持自定义AMI,它目前不支持Windows.还有死星包,我没有深入探讨过.

有没有其他人想出这个问题的解决方案?

foreach r amazon-ec2 amazon-web-services

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

在R中对大型矩阵的每一行进行排序的最快方法

我有一个大矩阵:

set.seed(1)
a <- matrix(runif(9e+07),ncol=300)
Run Code Online (Sandbox Code Playgroud)

我想对矩阵中的每一行进行排序:

> system.time(sorted <- t(apply(a,1,sort)))
   user  system elapsed 
  42.48    3.40   45.88 
Run Code Online (Sandbox Code Playgroud)

我有很多RAM可以使用,但我想要一种更快的方法来执行此操作.

sorting row r matrix

8
推荐指数
3
解决办法
2810
查看次数

解析XML文件并返回R字符向量

我用R解析了一个XML文档,例如:

library(XML)
f = system.file("exampleData", "mtcars.xml", package="XML")
doc = xmlParse(f)
Run Code Online (Sandbox Code Playgroud)

使用XPath表达式,我可以选择文档中的特定节点:

> getNodeSet(doc, "//record[@id='Mazda RX4']/text()")
[[1]]
   21.0   6 160.0 110 3.90 2.620 16.46  0  1    4    4 

    attr(,"class")
    [1] "XMLNodeSet"
Run Code Online (Sandbox Code Playgroud)

但我无法弄清楚如何将结果转换为R字符向量:

> as.character(getNodeSet(doc, "//record[@id='Mazda RX4']/text()"))
[1] "<pointer: 0x000000000e6a7fe0>"
Run Code Online (Sandbox Code Playgroud)

如何从内部指针获取文本到C对象?

xml r

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

透视大数据.表格

我在R中有一个大数据表:

library(data.table)
set.seed(1234)
n <- 1e+07*2
DT <- data.table(
  ID=sample(1:200000, n, replace=TRUE), 
  Month=sample(1:12, n, replace=TRUE),
  Category=sample(1:1000, n, replace=TRUE),
  Qty=runif(n)*500,
  key=c('ID', 'Month')
)
dim(DT)
Run Code Online (Sandbox Code Playgroud)

我想调整这个data.table,使Category成为一个列.不幸的是,由于组内的类别数量不恒定,我不能使用这个答案.

我有什么想法可以做到这一点?

/编辑:基于joran的评论和flodel的回答,我们正在重塑以下内容data.table:

agg <- DT[, list(Qty = sum(Qty)), by = c("ID", "Month", "Category")]
Run Code Online (Sandbox Code Playgroud)

这种重塑可以通过多种方式实现(到目前为止我已经得到了一些好的答案),但我真正想要的是能够很好地扩展到data.table数百万行和数百到数千种类别的东西.

r data.table

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

序列扩展问题

我有一系列'端点',例如:

c(7,10,5,11,15)     
Run Code Online (Sandbox Code Playgroud)

我希望扩展到端点之间的"经过时间"序列,例如

C(7,1,2,3,4,5,6,7,8,9,10,1,2,3,4,5,1,2,3,4,5,6,7,8-, 9,10,11,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15)

在R中最有效的方法是什么?我想象一下这个embed功能的创造性使用,但是如果不使用丑陋的for循环,我就无法完全实现.

这是执行此操作的天真方式:

expandSequence <- function(x) {
    out <- x[1]
    for (y in (x[-1])) {
        out <- c(out,seq(1,y))
    }
    return(out)
}

expandSequence(c(7,10,5,11,15))
Run Code Online (Sandbox Code Playgroud)

sequences r

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

循环通过一系列qplots

我想循环一系列qplots或多个ggplot2情节,暂停每一个,以便我可以在继续之前检查它.

以下代码不生成图:

library(ggplot2)
par(ask=TRUE)
for(Var in names(mtcars)) {
    qplot(mtcars[,Var], wt, data=mtcars, xlab=Var)
}
Run Code Online (Sandbox Code Playgroud)

但如果我在运行循环后运行此行,我会得到一个情节:

qplot(mtcars[,Var], wt, data=mtcars, xlab=Var)
Run Code Online (Sandbox Code Playgroud)

这种行为的原因是什么?如何在循环中显示图?

跟进:循环变量比使用mtcars[,Var]和更优雅xlab=Var吗?

r ggplot2

7
推荐指数
3
解决办法
3492
查看次数

使用Dropbox Web界面删除包含30,000个文件的文件夹

我的Dropbox中有一个包含30,000个文件的文件夹,我无法使用Web界面删除.看来我必须下载所有30,000个文件才能告诉dropbox我真的不想要它们.

出现此错误是因为最初拥有文件的计算机已经消失,我使用选择性同步来避免将30,000个文件下载到我的所有其他计算机.

任何人都可以想到一个聪明的方法来解决这个问题吗?只是查看文件夹通常会导致Web界面崩溃.

dropbox dropbox-api

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

将混合数,分数和整数的字符向量转换为数字

我正在尝试编写一个R函数来将分数和混合数转换为小数.例如

mixedToFloat <- function(x){
    x <- sub(' ', '+', x, fixed=TRUE)
    return(unlist(lapply(x, function(x) eval(parse(text=x)))))
}

> mixedToFloat(c('1 1/2', '2 3/4', '2/3', '11 1/4', '1'))
[1]  1.5000000  2.7500000  0.6666667 11.2500000  1.0000000
Run Code Online (Sandbox Code Playgroud)

这适用于我能想到的大多数情况,但感觉有点hackish.有更标准的方法吗?

r fractions

7
推荐指数
2
解决办法
1711
查看次数

根据矢量按照矢量的顺序创建彩虹色标

我正在寻找一种更优雅的方式来做到这一点:

#Create Dataset
set.seed(1)
x <- runif(100)
y <- runif(100)
z <- y*x

#Assign colors, based on z vector    
Data <- data.frame(Order=1:length(z),z=z)
Data <- Data[order(Data$z),]
Data$col <- rainbow(length(z))
orderedcolors <- Data[order(Data$Order),'col']

#Plot x vs y, colored by z
plot(x,y,col=orderedcolors)
Run Code Online (Sandbox Code Playgroud)

基本上,我想为z矢量中的每个点指定一种颜色,我希望这些颜色在彩虹范围内从z的最低值到它的最高值变化.

graphics r colors

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