我在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)
注:我也安装foreach及doMC内部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) 我正在编写一个教程,并且在语法上遇到了困难.我无法看到我出错的地方,但我从控制台收到错误消息.
我有一个目录中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不喜欢我的一些'}',但无法弄清楚为什么?我的语法有什么问题?
假设我有多个时间序列需要预测。如果我为每个对象设置了合适的时间序列对象,我就可以拟合(例如)一个 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中有一个大的相关矩阵结果 - 现在大约有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,如果它存在.
提前致谢.
我在我的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.我缺少什么?
我在一个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)
在此先感谢您的帮助.
我正在使用xts或data.frame对象,并且需要一种简单的方法将1分钟间隔的数据汇总到15分钟,每小时等等...
我意识到有to.period方法,但我的问题是我的列是非OHLC列,因此在调用.period时它们会被删除.
我的数据有三列:POSIXct,SomeVar,AnotherVar.
我需要能够转换这些数据,同时这样做要么总结我的数据列,要么接受最大值.与to.period工作方式非常相似,但列的名称不同.此外,我的列数据有时是因子而不是数字,所以如果这也可以处理转换(计算时),这将是理想的.
我正在尝试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) 我有以下代码:
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中的集体推文中提取主题标签.例如:
[[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)