是否有一种等效的方法来绘制函数使用基本图形中使用ggplot的curve()命令?我想替代方法是创建函数值的向量并绘制连接线,但我希望更简单一些.
谢谢!
我使用R进行数据分析,对此非常满意.但是,清洁数据可能会更容易一些.我正在考虑学习适合这项任务的另一种语言.具体来说,我正在寻找一种工具,用于获取原始数据,删除不必要的变量或观察,并格式化它以便在R中轻松加载.内容主要是数字和字符串数据,而不是多行文本.
我正在考虑awk/sed组合与Python.(我认识到Perl将是另一种选择,但是,如果我要学习另一种完整语言,Python似乎是一种更好,更可扩展的选择.)
sed/awk的优点是学习起来会更快.缺点是这种组合不像Python那样可扩展.事实上,如果我学习Python,我可能会想象一些"任务蔓延",这很好,但不是我的目标.
我的另一个考虑因素是大数据集的应用程序.据我所知,awk/sed逐行操作,而Python通常会将所有数据都拉入内存.这可能是sed/awk的另一个优势.
我还缺少其他问题吗?您可以提供的任何建议将不胜感激.(我为R用户提供了R标签,以提供他们的清洁建议.)
我试图在几个核心上运行代码(我尝试了两个snow和parallel包).我有
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在全球环境中找到.有办法解决这个问题吗?谢谢.
我正在尝试比较并行化选项.具体来说,我正在将标准SNOW和mulitcore实现与使用doSNOWor doMC和foreach.作为一个样本问题,我通过多次计算从标准正态分布中抽取的样本的均值来说明中心极限定理.这是标准代码:
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) 我需要计算向量子集的均值和方差.让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)
第一种方法没有明确地创建新对象; 但这样做的通话mean和var做含蓄?或者它们是否存储了原始矢量?
第二个更快,因为它不必两次进行子集化吗?
我关注速度和大数据集的内存管理.
我有兴趣探索R如何处理内存数据.我找到了bigmemory包和朋友(bigtabulate和biganalytics),但希望有人能指出我使用这些包的文件支持的一个成功的例子.任何其他内存不足的提示也将不胜感激.
假设我们有一个看起来像的数据框
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) 我有一个数据框,包含随机游走的x和y坐标,以不连续的步骤(向上,向下,向左或向右一步)移动.我想绘制路径---由一条线连接的点.当然,这很容易.困难在于路径越过自身并变得难以解释.我为点添加抖动以避免过度绘图,但它无助于区分步行的顺序.
我想根据类似温度计的色标,使用根据"时间"(步骤)改变颜色的线来连接点.
我的随机游走存储在它自己的类中,我正在plot为它编写一个特定的方法,所以如果你有关于如何使用它的建议plot,那就太好了.谢谢!
我知道你可以在R中创建新的类,但为什么你想要?我想到了两个原因:
is.函数来测试对象是否属于特定类(对象的分类)我没有想到通过其他方式或者当它们确实有用时不能很容易地实现这些好处的情况.
我希望这不是太开放的,更具体的例子如何使用定义类将是伟大的.谢谢你的任何想法.
r ×9
awk ×1
class ×1
foreach ×1
ggplot2 ×1
performance ×1
python ×1
r-bigmemory ×1
reshape ×1
sed ×1