小编Jos*_*ich的帖子

Ubuntu R ForEach/DoMC不使用多核

我在R中构建了一个函数(运行在Ubuntu 12.04 LTS 64位,4核i7服务器,多线程和6gb ram),我使用标准软件包安装了R:

sudo apt-get install r-base r-recommended r-base-dev
sudo apt-get install r-cran-multicore r-cran-iterators r-cran-foreach r-cran-domc 
Run Code Online (Sandbox Code Playgroud)

注:我也安装foreachdoMC内部R(它没有帮助),像我安装的deldir软件包:

install.packages(c("deldir"), dependencies = TRUE)
Run Code Online (Sandbox Code Playgroud)

我的函数运行正常,但它不使用并行核心(只需最多输出8个):

library(deldir)
library(foreach)
library(doMC)
registerDoMC(cores=8)

#getDoParWorkers()
#getDoParName()
#getDoParVersion()

# loop through files
inputfiles <- dir(path="/home/geoadmin/data/objects/", pattern='.txt')
for( inputfilenr in 1:length(inputfiles))
{
# set file variables    
curinputfile = paste("/home/geoadmin/data/objects/",inputfiles[[inputfilenr]], sep = "", collapse = NULL)
print (curinputfile)
curoutputfile = paste("/home/geoadmin/data/objects/",substr(inputfiles[[inputfilenr]], start=1, stop=10), '.out', sep = "", collapse = NULL)
# select the …
Run Code Online (Sandbox Code Playgroud)

ubuntu foreach r domc

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

R-Project if else语法

我正在编写一个教程,并且在语法上遇到了困难.我无法看到我出错的地方,但我从控制台收到错误消息.

我有一个目录中300个csv文件的列表.用户将输入他们正在寻找信息的文件的编号(id).格式如下:001.csv,002.csv,090.csv 250.csv等.

该函数将输入转换为csv文件名的字符串.例如,如果id为5,则返回005.csv.如果输入220,则输出220.csv.

这是代码:

csvfile <- function(id) {
  if (id < 10) { paste0(0,0,id,".csv"
  } else if (id < 100) {paste0(0,id,".csv"
  }else paste0(id,".csv")
}
Run Code Online (Sandbox Code Playgroud)

这是控制台返回的错误:

> csvfile <- function(id) {
+ if (id < 10) { paste0(0,0,id,".csv"
+ } else if (id < 100) {paste0(0,id,".csv"
Error: unexpected '}' in:
"if (id < 10) { paste0(0,0,id,".csv"
}"
> }else paste0(id,".csv")
Error: unexpected '}' in "}"
> }
Run Code Online (Sandbox Code Playgroud)

我可以看到R不喜欢我的一些'}',但无法弄清楚为什么?我的语法有什么问题?

syntax if-statement r

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

将模型应用于多个时间序列

假设我有多个时间序列需要预测。如果我为每个对象设置了合适的时间序列对象,我就可以拟合(例如)一个 ARIMA 模型等等。但是,我知道当所有系列都在一个xts对象中时,必须有一种简单的方法来自动化这个过程(撇开不同的变量可能需要不同的 ARIMA 模型的事实;这可能是另一个问题)。

一些示例数据作为 xts 对象(六个不同业务的每日收入):

library(xts)

ts <- structure(c(534L, 549L, 636L, 974L, 848L, 895L, 1100L, 1278L, 
1291L, 1703L, 1532L, 533L, 619L, 642L, 939L, 703L, 759L, 1213L, 
1195L, 1153L, 1597L, 1585L, 649L, 597L, 628L, 924L, 703L, 863L, 
1261L, 1161L, 1212L, 1616L, 1643L, 583L, 694L, 611L, 891L, 730L, 
795L, 1242L, 1210L, 1159L, 1501L, 1702L, 513L, 532L, 580L, 917L, 
978L, 947L, 1227L, 1253L, 1121L, 1697L, 1569L, 646L, 636L, 516L, 
869L, 980L, 937L, 1173L, 1203L, 1204L, 1511L, 1640L), .Dim …
Run Code Online (Sandbox Code Playgroud)

r xts

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

找到最大值5,小于1,最低5个值

我在R中有一个大的相关矩阵结果 - 现在大约有30个项目彼此相关 - 所以这个数组有大约10,000个单元格.我想找到最大的5个和最小的5个结果.我怎样才能做到这一点?

这是一个非常小的部分 - 左上角 - 看起来像:

               PL1         V3          V4         V5
PL1     1.00000000 0.19905701 -0.02994034 -0.1533846
V3      0.19905701 1.00000000  0.09036472  0.1306054
V4     -0.02994034 0.09036472  1.00000000  0.1848030
V5     -0.15338465 0.13060539  0.18480296  1.0000000
Run Code Online (Sandbox Code Playgroud)

表中的值总是在1和-1之间,如果有帮助,作为相关矩阵,对角线上方的上半部分是对角线下方的下半部分的副本.

我需要最小的5小于1和最负5包括-1,如果它存在.

提前致谢.

r

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

Android XML定义的维度值产生意外结果

我在我的XML文件中定义了一个dp维度,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <dimen name="custom_button_Margin">10dp</dimen>
</resources>
Run Code Online (Sandbox Code Playgroud)

我的想法是使用这些值来设置元素之间的填充.当我在布局XML文件中使用该值时,这可以正常工作.

片段:

<RelativeLayout
    android:id="@+id/mainButtons"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_weight="0.4"
    android:layout_margin = "5dp"

    android:gravity="right|bottom">
    <Button
        android:id="@+id/_7"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/seven"

        android:background = "@drawable/custom_button"
        android:typeface="monospace"
        android:textSize="@dimen/custom_button_TextSize"

        android:layout_marginRight = "@dimen/custom_button_Margin"
        android:layout_marginBottom = "@dimen/custom_button_Margin"
    />
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

问题在于我尝试以编程方式获取此值.我希望得到一个已经缩放以匹配屏幕密度的值.然后我要做的就是按照这里找到的公式(页面很长,看看转换dp单位到像素单位)

我将公式包装在一个函数中,该函数检索文件中定义的值,并将其缩放为像素.

private int get_custom_button_PadV()
    {
    final float scale = getResources().getDisplayMetrics().density;

    return (int) (R.dimen.custom_button_Margin * scale + 0.5f);
    }
Run Code Online (Sandbox Code Playgroud)

当我观察代码时,我看到以下值

scale = 1.0
R.dimen.custom_button_Margin = 2131099650
Run Code Online (Sandbox Code Playgroud)

我无法弄清楚为什么custom_button_Margin值如此之大......我希望它的标度为1.0,那么值为10.我缺少什么?

xml android

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

在R中的每一行上执行if语句

我在一个csv文件中读到R,看起来像这样:

3,3
3,2
3,3
3,3
3,3
3,3
2,3
1,2
2,2
3,3
Run Code Online (Sandbox Code Playgroud)

我想为我的数据可能的9种独特可能性中的每一种分配一个数字(3和3是9,3和2是8,2和3是6等).我一直在尝试设计一个嵌套的if语句,它将评估每一行,在第三列中分配一个数字,并为数据集中的每一行执行此操作.我相信这可以通过apply函数来完成,但是我无法在apply函数中使用if语句.这两列都有可能的值1,2或3.这是我的代码到目前为止,只是尝试分配9到3/3列,0到其他所有:

#RScript for haplotype analysis

#remove(list=ls())
options(stringsAsFactors=FALSE)
setwd("C:/Documents and Settings/ColumbiaPC/Desktop")

#read in comma-delimited, ID-matched genotype data
OXT <- read.csv("OXTRhaplotype.csv")
colnames(OXT)<- c("OXT1","OXT2")

OXT$HAP <- apply(OXT, 1, function(x) if(x[1]=="3"&&x[2]=="3")x[3]=="9" else 0))
Run Code Online (Sandbox Code Playgroud)

在此先感谢您的帮助.

syntax r function apply

4
推荐指数
3
解决办法
5426
查看次数

在非OHLC上转换XTS周期

我正在使用xts或data.frame对象,并且需要一种简单的方法将1分钟间隔的数据汇总到15分钟,每小时等等...

我意识到有to.period方法,但我的问题是我的列是非OHLC列,因此在调用.period时它们会被删除.

我的数据有三列:POSIXct,SomeVar,AnotherVar.

我需要能够转换这些数据,同时这样做要么总结我的数据列,要么接受最大值.与to.period工作方式非常相似,但列的名称不同.此外,我的列数据有时是因子而不是数字,所以如果这也可以处理转换(计算时),这将是理想的.

r dataframe xts

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

从源代码安装R包,无需更改PATH(Windows)

我正在尝试rpart在Windows 7上安装R-2.14.0 软件包,但是我收到警告:

包'rpart'不可用(对于R版本2.14.0)

所以我从包页面下载tar.gz文件.我已经安装了Rtools但是我禁用了所有选项,包括更改PATH的选项.然后我做以下事情:

> install.packages("C:/rpart_3.1-50.tar.gz", type="source")
Installing package(s) into ‘C:/Users/backupSam/Documents/R/win-library/2.14’
(as ‘lib’ is unspecified)
inferring 'repos = NULL' from the file name
* installing *source* package 'rpart' ...
** libs

*** arch - i386
ERROR: compilation failed for package 'rpart'
* removing 'C:/Users/backupSam/Documents/R/win-library/2.14/rpart'
* restoring previous 'C:/Users/backupSam/Documents/R/win-library/2.14/rpart'
Warning messages:
1: running command 'C:/PROGRA~1/R/R-214~1.0/bin/i386/R CMD INSTALL -l "C:/Users/backupSam/Documents/R/win-library/2.14"   "C:/rpart_3.1-50.tar.gz"' had status 1 
2: In install.packages("C:/rpart_3.1-50.tar.gz", type = "source") :
  installation of package ‘C:/rpart_3.1-50.tar.gz’ had non-zero exit status …
Run Code Online (Sandbox Code Playgroud)

windows r

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

将 getSymbols 结果合并到一个 xts 对象中

我有以下代码:

library(quantmod)
tckrs <- c("TLT", "LQD", "HYG", "SPY", "DBC")
NumTckrs  <-  length(tckrs)
getSymbols(tckrs, from="1900-01-01", to=Sys.Date())

# merge to allign the start dates
MainDF <- merge(Ad(TLT), Ad(LQD), Ad(HYG), Ad(SPY), Ad(DBC), all=FALSE)
Run Code Online (Sandbox Code Playgroud)

我不想在最后一行重复股票代码。有谁知道如何做到这一点?

r quantmod

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

使用R在几个推文中提取主题标签

我迫切需要一个解决方案来从R中的集体推文中提取主题标签.例如:

[[1]]
[1] "RddzAlejandra: RT @NiallOfficial: What a day for @johnJoeNevin ! Sooo proud t have been there to see him at #London2012 and here in mgar #MullingarShuffle"

[[2]]
[1] "BPOInsight: RT @atos: Atos completes delivery of key IT systems for London 2012 Olympic Games http://t.co/Modkyo2R #london2012"

[[3]]
[1] "BloombergWest: The #Olympics sets a ratings record for #NBC, with 219M viewers tuning in. http://t.co/scGzIXBp #london2012 #tech"
Run Code Online (Sandbox Code Playgroud)

如何解析它以提取所有推文中的#标签词列表.以前的解决方案在第一条推文中仅显示主题标签,并在代码中显示以下错误消息:

> string <-"MonicaSarkar: RT @saultracey: Sun kissed #olmpicrings at #towerbridge #london2012   @ Tower …
Run Code Online (Sandbox Code Playgroud)

r

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

标签 统计

r ×9

syntax ×2

xts ×2

android ×1

apply ×1

dataframe ×1

domc ×1

foreach ×1

function ×1

if-statement ×1

quantmod ×1

ubuntu ×1

windows ×1

xml ×1