小编h.l*_*l.m的帖子

将R数据直接写为csv到s3

我希望能够将数据直接从作为csv文件的data.frame\ s data.table对象写入AWS s3中的存储桶,而无需先使用AWS CLI将其写入磁盘.

obj.to.write.s3 <- data.frame(cbind(x1=rnorm(1e6),x2=rnorm(1e6,5,10),x3=rnorm(1e6,20,1)))
Run Code Online (Sandbox Code Playgroud)

目前我先写入csv,然后上传到现有存储桶,然后使用以下命令删除文件:

fn <- 'new-file-name.csv'
write.csv(obj.to.write.s3,file=fn)
system(paste0('aws s3 ',fn,' s3://my-bucket-name/',fn))
system(paste0('rm ',fn))
Run Code Online (Sandbox Code Playgroud)

我想要一个直接写入s3的函数?那可能吗?

csv r amazon-s3 amazon-web-services

16
推荐指数
3
解决办法
7979
查看次数

httr github-API回调URL问题

我现在正在使用httrv0.2包来使用github api.但是我很难超越oauth2.0(...)我进入应用程序浏览器页面的部分,单击"允许"然后重定向到回调URL页面.

httr github演示建议使用回调URL,http://localhost:1410但当我被重定向到该页面时,谷歌浏览器表明它无法连接到该页面,而它正在被重定向的页面是http://localhost:1410/?error=redirect_uri_mismatch&state=DZNFcm8tnq...所以我尝试了一堆其他端口和整体URL没有成功......

什么是另一个回调URL和URL可以工作?

下面是我使用的代码

require(httr)
## Loading required package: httr
github.app <- oauth_app("github","xxxxx", "xxxxxxxxxxxxxxx")
github.urls <- oauth_endpoint(NULL, "authorize", "access_token",base_url = "https://github.com/login/oauth")
github.token <- oauth2.0_token(github.urls,github.app)
## Loading required package: Rook
## Loading required package: tools
## Loading required package: brew
## starting httpd help server ... done
## Waiting for authentication in browser...
Run Code Online (Sandbox Code Playgroud)

这是当我被定向到一个页面,其中有一个'允许'按钮,点击之后,我被重定向到google chrome中无法连接到localhost的页面:1410

r github github-api httr

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

R连接到EC2实例以进行并行处理

我无法从R初始化与AWS EC2实例的连接,因为我似乎一直在收到错误:Permission denied (publickey)我目前正在使用Mac OS X 10.6.8作为我的操作系统

我尝试在终端($)和R(>)中运行的代码如下:

$ R --vanilla
> require(snowfall)
> sfInit(parallel=TRUE,socketHosts =list("ec2-xx-xxx-xx-xx.zone.compute.amazonaws.com"))
Permission denied (publickey)
Run Code Online (Sandbox Code Playgroud)

但奇怪的是,当我尝试ssh到实例时,我不需要密码,因为我已经在初始化时将公钥导入实例,(我认为)

所以从我的正常终端...跑步时

$ ssh ubuntu@ec2-xx-xxx-xx-xx.zone.compute.amazonaws.com
Run Code Online (Sandbox Code Playgroud)

它会自动连接...(所以我不是100%确定它是否是无密码问题,例如在AWS使用雪(和降雪)在R中进行并行处理)

我试过在键等上查看相当数量的材料,但似乎没有任何差别.我~/.ssh/authorized_keys也是一个文件夹而不是文件由于某种原因,我甚至在尝试时都无法访问它sudo cd .ssh/authorized_keys...在权限方面drw-------

最终的目标是连接到很多ec2实例并foreach用来执行一些并行处理...但是现在连接到一个也很好...我也想使用我自己的ami所以starcluster不是我真正想要的......(除非我能够使用私有amis并私下运行所有​​命令......)

另外如果doRedis比有人能告诉我如何从本地机器连接到ec2实例那样好,那也是好的...

编辑

我已经设法使用parallel包来处理ssh无密码登录makePSOCKcluster,如R和makePSOCKcluter EC2 socketConnection所示 ......但现在遇到的socketConnection问题如链接中的问题所示...

任何想法如何连接到它?

还证明一切正常,我想这意味着以下命令/函数可以用于获取所有不同的IP地址

d <- parLapply(cl1, 1:length(cl1),function(x)system("ifconfig",intern=T)[2])
Run Code Online (Sandbox Code Playgroud)

函数cl1的输出在哪里make*cluster

注意,因为赏金真的是针对链接中的问题....我不介意你提出哪个问题的答案...但只要在这个问题上写了一些东西就把它与正确的答案联系起来关于相关问题,那么我将相应地奖励积分......

parallel-processing foreach r amazon-ec2 snowfall

14
推荐指数
1
解决办法
2968
查看次数

有没有一种快速的方法可以在Python中获得等效的ls()?

我是Python的新手并且通常使用R,并且经常ls()用来获取当前环境中所有对象的向量,是否在Python中快速做同样的事情?

python r

14
推荐指数
1
解决办法
2823
查看次数

Python pandas rolling_apply将两列输入到函数中

继续这个问题Python自定义函数使用rolling_apply进行pandas,关于使用rolling_apply.虽然我已经使用了我的函数,但我正在努力处理需要两列或更多列作为输入的函数:

创建与以前相同的设置

import pandas as pd
import numpy as np
import random

tmp  = pd.DataFrame(np.random.randn(2000,2)/10000, 
                    index=pd.date_range('2001-01-01',periods=2000),
                    columns=['A','B'])
Run Code Online (Sandbox Code Playgroud)

但稍微改变功能需要两列.

def gm(df,p):
    df = pd.DataFrame(df)
    v =((((df['A']+df['B'])+1).cumprod())-1)*p
    return v.iloc[-1]
Run Code Online (Sandbox Code Playgroud)

它会产生以下错误:

pd.rolling_apply(tmp,50,lambda x: gm(x,5))

  KeyError: u'no item named A'
Run Code Online (Sandbox Code Playgroud)

我认为这是因为lambda函数的输入是长度为50且仅在第一列的ndarray,并且不会将两列作为输入.有没有办法将两列作为输入并在rolling_apply函数中使用它.

再次感谢任何帮助......

python pandas

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

SparkR filterRDD和flatMap无法正常工作

在花了很长时间研究如何安装SparkR后,我认为包装可能存在一些问题......

请记住,我很新兴,所以我不确定我是否做了正确的事情.

从一个新的EC2 ubuntu 64位实例我安装了R和JDK

我git克隆了apache spark repo并用以下内容构建它:

git clone https://github.com/apache/spark.git
cd spark
build/mvn -DskipTests -Psparkr package
Run Code Online (Sandbox Code Playgroud)

然后我.Rprofile通过包含以下行改变了我的引用R目录....

Sys.setenv(SPARK_HOME="/home/ubuntu/spark")
.libPaths(c(file.path(Sys.getenv("SPARK_HOME"), "R", "lib"), .libPaths()))
Run Code Online (Sandbox Code Playgroud)

然后在启动RI后尝试并运行此处给出的快速入门指南

以下是我采取的以下步骤......

 R> library(SparkR)
 R> sc <- sparkR.init(master="local")
 R> textFile <- SparkR:::textFile(sc, "/home/ubuntu/spark/README.md")
 R> cc <- SparkR:::count(textFile)
 R> t10 <- SparkR:::take(textFile,10)
Run Code Online (Sandbox Code Playgroud)

所有工作都很好,直到这里...以下线路不起作用......

 R> SparkR:::filterRDD(textFile, function(line){ grepl("Spark", line)})
 Error: class(objId) == "jobj" is not TRUE

 R> traceback()
 7: stop(sprintf(ngettext(length(r), "%s is not TRUE", "%s are not all TRUE"), 
   ch), call. = FALSE, domain = …
Run Code Online (Sandbox Code Playgroud)

java scala r amazon-ec2 apache-spark

14
推荐指数
1
解决办法
1973
查看次数

如何在chunk中更改knitr选项

嗨,我想更改大块选项,中间块,而不必创建一个新的块..

运行以下代码我希望得到两个非常不同的大小输出,但由于某种原因,似乎并非如此.

第二个情节根本没有绘图...(当你把它改为绘图时(2:1000)......但无论哪种方式,第二个输出都与第一个相同.两者fig.width=7.我在做什么错误?

请注意'mid chunk'的重要性,原因是我想在运行函数时多次更改块选项以获得不同大小的不同输出.

```{r}
sessionInfo()

opts_chunk$set(fig.width=3)

plot(1:1000)

opts_chunk$set(fig.width=10)

plot(1:1000)

```
Run Code Online (Sandbox Code Playgroud)

sessionInfo输出如下:

## R version 2.15.1 (2012-06-22)
## Platform: i386-pc-mingw32/i386 (32-bit)
## 
## locale:
## [1] LC_COLLATE=English_United Kingdom.1252 
## [2] LC_CTYPE=English_United Kingdom.1252   
## [3] LC_MONETARY=English_United Kingdom.1252
## [4] LC_NUMERIC=C                           
## [5] LC_TIME=English_United Kingdom.1252    
## 
## attached base packages:
## [1] stats     graphics  grDevices datasets  utils     methods   base     
## 
## other attached packages:
## [1] knitr_0.7
## 
## loaded via a namespace (and not attached):
## [1] digest_0.5.2 …
Run Code Online (Sandbox Code Playgroud)

r options chunks knitr

13
推荐指数
2
解决办法
2984
查看次数

在R中抑制安装输出

这真的开始让我感到烦恼......我尝试了一些方法,但似乎都没有

我正在从一个函数运行一个安装,它生成了许多我想要抑制的不必要的消息,但我尝试这样做的所有方法都没有用.

我试图压缩的代码是:install_github('ROAUth', 'duncantl')它需要devtools事先加载包.

无论如何,我尝试了invisible,capture.output并且sink,没有一个工作...或者我可能没有正确使用它们......无论哪种方式......任何想法?

r suppressmessage

12
推荐指数
1
解决办法
3605
查看次数

使用R中的data.table有效地重塑预测数据

我正在寻找一种更有效的方法来重塑R中的data.table数据.

目前,我正在循环以执行多个时间序列预测的重新形成.

我得到了正确答案,但我觉得这种方法非常不优雅/(un-data.table).因此,我期待SO社区看看是否有更优雅的解决方案.

请参阅下面的数据设置以及两次尝试获得所需答案.

# load libraries
require(data.table)
require(lubridate)


# set up data assumptions
id_vec <- letters
len_id_vec <- length(id_vec)
num_orig_dates <- 7
set.seed(123)


# create original data frame
orig <- data.table(ID=rep(id_vec,each=num_orig_dates),
                   date=rep(c(Sys.Date() %m+% months(0: (num_orig_dates-1))),times=len_id_vec),
                   most_recent_bal=unlist(lapply(round(runif(len_id_vec)*100),function(y){
                     y*cumprod(1+rnorm(num_orig_dates,0.001,0.002))})))


# add 24 months ahead predictions of balances using a random walk from the original dates
nrow_orig <- nrow(orig)

for(i in seq(24)){
  orig[,paste0('pred',i,'_bal'):=most_recent_bal*(1+rnorm(nrow_orig,0.001,0.003))]
  orig[,paste0('pred',i,'_date'):=date %m+% months(i)]
}


# First attempt
t0 <- Sys.time()
tmp1 <- rbindlist(lapply(unique(orig$ID),function(x){
  orig1 <- orig[ID==x,]

  bal_cols <- c('most_recent_bal',paste0('pred',seq(24),'_bal')) …
Run Code Online (Sandbox Code Playgroud)

r data.table

12
推荐指数
1
解决办法
217
查看次数

使用谷歌的邮政编码距离

我有两个邮政编码列表(在R中)...其中一个孩子的地址与他们的学业成绩和一个学校......

我希望能够为每个孩子获得最近的学校......所以大概是通过转换为长期和纬度值来计算邮政编码之间的距离?

然后我希望能够在谷歌地图上绘制每所学校的所有孩子......并看看住在离学校较近的孩子是否能获得更好的成绩......或许可以为孩子和孩子们设置不同颜色的学校根据他们的分数有一个渐变的颜色?

也许是使用googleVis包的东西?

所以例如......

如果我们有3个孩子和2所学校的数据......

student.data <- cbind(post.codes=c("KA12 6QE", "SW1A 0AA", "WC1X 9NT"),score=c(23,58,88))
school.postcodes <- c("SL4 6DW", "SW13 9JT")
Run Code Online (Sandbox Code Playgroud)

(注意我的实际数据明显大于给定的数据,因此可扩展性很有用......)

应该怎么做googleVis或任何其他包,以便能够完成上述?

google-maps r google-visualization google-maps-api-3

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