小编Cha*_*lie的帖子

相当于ggplot的curve()

是否有一种等效的方法来绘制函数使用基本图形中使用ggplotcurve()命令?我想替代方法是创建函数值的向量并绘制连接线,但我希望更简单一些.

谢谢!

r ggplot2

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

用于清理数据的Python或awk/sed

我使用R进行数据分析,对此非常满意.但是,清洁数据可能会更容易一些.我正在考虑学习适合这项任务的另一种语言.具体来说,我正在寻找一种工具,用于获取原始数据,删除不必要的变量或观察,并格式化它以便在R中轻松加载.内容主要是数字和字符串数据,而不是多行文本.

我正在考虑awk/sed组合与Python.(我认识到Perl将是另一种选择,但是,如果我要学习另一种完整语言,Python似乎是一种更好,更可扩展的选择.)

sed/awk的优点是学习起来会更快.缺点是这种组合不像Python那样可扩展.事实上,如果我学习Python,我可能会想象一些"任务蔓延",这很好,但不是我的目标.

我的另一个考虑因素是大数据集的应用程序.据我所知,awk/sed逐行操作,而Python通常会将所有数据都拉入内存.这可能是sed/awk的另一个优势.

我还缺少其他问题吗?您可以提供的任何建议将不胜感激.(我为R用户提供了R标签,以提供他们的清洁建议.)

python awk r sed data-cleaning

26
推荐指数
3
解决办法
4134
查看次数

parSapply在全球环境中找不到对象

我试图在几个核心上运行代码(我尝试了两个snowparallel包).我有

cl <- makeCluster(2)
y  <- 1:10
sapply(1:5, function(x) x + y)  # Works
parSapply(cl, 1:5, function(x) x + y)
Run Code Online (Sandbox Code Playgroud)

最后一行返回错误:

Error in checkForRemoteErrors(val) : 
  2 nodes produced errors; first error: object 'y' not found
Run Code Online (Sandbox Code Playgroud)

显然parSapply没有y在全球环境中找到.有办法解决这个问题吗?谢谢.

parallel-processing r

25
推荐指数
2
解决办法
5633
查看次数

使用foreach并行化的问题

我正在尝试比较并行化选项.具体来说,我正在将标准SNOWmulitcore实现与使用doSNOWor doMCforeach.作为一个样本问题,我通过多次计算从标准正态分布中抽取的样本的均值来说明中心极限定理.这是标准代码:

CltSim <- function(nSims=1000, size=100, mu=0, sigma=1){
  sapply(1:nSims, function(x){
    mean(rnorm(n=size, mean=mu, sd=sigma))
  })
}
Run Code Online (Sandbox Code Playgroud)

这是SNOW实施:

library(snow)
cl <- makeCluster(2)

ParCltSim <- function(cluster, nSims=1000, size=100, mu=0, sigma=1){
  parSapply(cluster, 1:nSims, function(x){
    mean(rnorm(n=size, mean=mu, sd=sigma))
  })
}
Run Code Online (Sandbox Code Playgroud)

接下来,doSNOW方法:

library(foreach)
library(doSNOW)
registerDoSNOW(cl)

FECltSim <- function(nSims=1000, size=100, mu=0, sigma=1) {
  x <- numeric(nSims)
  foreach(i=1:nSims, .combine=cbind) %dopar% {
    x[i] <- mean(rnorm(n=size, mean=mu, sd=sigma))
  }
}
Run Code Online (Sandbox Code Playgroud)

我得到以下结果:

> system.time(CltSim(nSims=10000, size=100))
   user  system elapsed …
Run Code Online (Sandbox Code Playgroud)

parallel-processing foreach r

11
推荐指数
2
解决办法
6072
查看次数

最有效的子集化向量方法

我需要计算向量子集的均值和方差.让x是载体和y是用于观察是否是在该子集中的一个指标.哪个更有效:

sub.mean <- mean(x[y])
sub.var  <-  var(x[y])
Run Code Online (Sandbox Code Playgroud)

要么

sub      <- x[y]
sub.mean <- mean(sub)
sub.var  <-  var(sub)
sub      <- NULL
Run Code Online (Sandbox Code Playgroud)

第一种方法没有明确地创建新对象; 但这样做的通话meanvar做含蓄?或者它们是否存储了原始矢量?

第二个更快,因为它不必两次进行子集化吗?

我关注速度和大数据集的内存管理.

performance r

9
推荐指数
1
解决办法
168
查看次数

bigmemory和有文件支持的朋友的例子

我有兴趣探索R如何处理内存数据.我找到了bigmemory包和朋友(bigtabulatebiganalytics),但希望有人能指出我使用这些包的文件支持的一个成功的例子.任何其他内存不足的提示也将不胜感激.

r r-bigmemory

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

重塑数据框架---将行更改为列

假设我们有一个看起来像的数据框

set.seed(7302012)

county         <- rep(letters[1:4], each=2)
state          <- rep(LETTERS[1], times=8)
industry       <- rep(c("construction", "manufacturing"), 4)
employment     <- round(rnorm(8, 100, 50), 0)
establishments <- round(rnorm(8, 20, 5), 0)

data <- data.frame(state, county, industry, employment, establishments)

  state county      industry employment establishments
1     A      a  construction        146             19
2     A      a manufacturing        110             20
3     A      b  construction        121             10
4     A      b manufacturing         90             27
5     A      c  construction        197             18
6     A      c manufacturing         73             29
7     A      d  construction         98 …
Run Code Online (Sandbox Code Playgroud)

r reshape

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

在"时间"上改变颜色的线图

我有一个数据框,包含随机游走的xy坐标,以不连续的步骤(向上,向下,向左或向右一步)移动.我想绘制路径---由一条线连接的点.当然,这很容易.困难在于路径越过自身并变得难以解释.我为点添加抖动以避免过度绘图,但它无助于区分步行的顺序.

我想根据类似温度计的色标,使用根据"时间"(步骤)改变颜色的线来连接点.

我的随机游走存储在它自己的类中,我正在plot为它编写一个特定的方法,所以如果你有关于如何使用它的建议plot,那就太好了.谢谢!

r

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

为什么在R中创建新类?

我知道你可以在R中创建新的类,但为什么你想要?我想到了两个原因:

  1. 您可以使用该is.函数来测试对象是否属于特定类(对象的分类)
  2. 仅允许某些类别的条目进入对象的槽(例如,仅用于surnmane的字符串,并且仅用于person类中的邮政编码的数字).

我没有想到通过其他方式或者当它们确实有用时不能很容易地实现这些好处的情况.

我希望这不是太开放的,更具体的例子如何使用定义类将是伟大的.谢谢你的任何想法.

r class

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