曾经困扰我作为R的新事物的一件事是如何将数字格式化为打印的百分比.
例如,显示0.12345
为12.345%
.我有很多解决方法,但这些似乎都没有"新友好".例如:
set.seed(1)
m <- runif(5)
paste(round(100*m, 2), "%", sep="")
[1] "26.55%" "37.21%" "57.29%" "90.82%" "20.17%"
sprintf("%1.2f%%", 100*m)
[1] "26.55%" "37.21%" "57.29%" "90.82%" "20.17%"
Run Code Online (Sandbox Code Playgroud)
问题:是否有基本的R函数来执行此操作?或者,是否有广泛使用的包提供方便的包装?
尽管在这里搜索了类似的东西?format
,?formatC
并且?prettyNum
我还没有在基础R中找到一个适当方便的包装器, ??"percent"
但没有产生任何有用的东西. library(sos); findFn("format percent")
返回1250次点击 - 所以再次没用. ggplot2
有一个功能,percent
但这不能控制舍入精度.
我是R的新手,我试图将3个直方图绘制在同一个图表上.一切都很好,但我的问题是你没有看到2个直方图重叠的位置 - 它们看起来相当截止:直方图
当我制作密度图时,它看起来很完美:每条曲线都被黑色框线包围,颜色在曲线重叠的地方看起来不同:密度图
有人可以告诉我,如果第一张照片中的直方图可以实现类似的东西吗?这是我正在使用的代码:
lowf0 <-read.csv (....)
mediumf0 <-read.csv (....)
highf0 <-read.csv(....)
lowf0$utt<-'low f0'
mediumf0$utt<-'medium f0'
highf0$utt<-'high f0'
histogram<-rbind(lowf0,mediumf0,highf0)
ggplot(histogram, aes(f0, fill = utt)) + geom_histogram(alpha = 0.2)
Run Code Online (Sandbox Code Playgroud)
提前感谢任何有用的提示!
我正在尝试将这个丑陋格式的数据集加载到我的R会话中:http: //www.cpc.ncep.noaa.gov/data/indices/wksst8110.for
Weekly SST data starts week centered on 3Jan1990
Nino1+2 Nino3 Nino34 Nino4
Week SST SSTA SST SSTA SST SSTA SST SSTA
03JAN1990 23.4-0.4 25.1-0.3 26.6 0.0 28.6 0.3
10JAN1990 23.4-0.8 25.2-0.3 26.6 0.1 28.6 0.3
17JAN1990 24.2-0.3 25.3-0.3 26.5-0.1 28.6 0.3
Run Code Online (Sandbox Code Playgroud)
到目前为止,我可以阅读这些内容
x = readLines(path)
Run Code Online (Sandbox Code Playgroud)
但是文件混合了"空格"和" - "作为分隔符,我不是正则表达式专家.我感谢任何有关将其变成一个漂亮而干净的R数据框架的帮助.谢谢!
每隔一段时间我就会遇到R具有复制修改语义的概念,例如在Hadley的devtools wiki中.
大多数R对象具有复制修改语义,因此修改函数参数不会更改原始值
我可以将这个术语追溯到R-Help邮件列表.例如,Peter Dalgaard在2003年7月写道:
R是一种函数式语言,具有惰性求值和弱动态类型(变量可以随意更改类型:a < - 1; a < - "a"是允许的).从语义上讲,一切都是复制修改,尽管在实现中使用了一些优化技巧来避免最严重的低效率.
R具有复制修改语义(原则上,有时在实践中),因此一旦对象的一部分发生变化,您可能必须在新的位置查找包含它的任何内容,包括可能的对象本身.
我们付出了相当多的努力来实现这一目标.我会将语义描述为"复制修改(如有必要)".仅在修改对象时才进行复制.(如果需要)部分意味着如果我们可以证明修改不能改变任何非局部变量,那么我们就可以继续修改而不需要复制.
它不在手册中
无论我搜索多么努力,我都无法在R手册中找到"复制修改"的参考,无论是在R语言定义还是在R Internals中
题
我的问题有两个部分:
例如,谈论"传递引用"是否合适,因为承诺传递给函数?
我在专业环境中定期在R中编程,我也为客户或同事编写包.这里的一些程序员具有Java背景,并坚持使用S4方法以面向对象的方式做所有事情.另一方面,我的经验是,在尝试让代码按照您希望的方式执行操作时,S4实现通常会更糟,并且会导致更多的麻烦.
我绝对同意,在某些情况下,您必须能够以受控方式构造复杂对象或附加现有对象.但大多数时候,S4实现也可以使用经典列表轻松完成,没有像定义standardGeneric,方法,构造函数,初始化器等那样麻烦.
你什么时候考虑为R编写S4实现?
编辑:为了清楚起见,我非常感谢R.OOP中的答案和关于OO的讨论可以在R中以多种方式完成,但我的问题实际上是针对特定使用S4方法的附加值.
有谁知道如何控制ggplot2中的图例排序?
从我可以看到,订单显示与实际比例标签相关,而不是比例声明顺序.更改比例标题会改变顺序.我用钻石数据集做了一个小例子来强调这一点.我正在尝试将ggplot2用于一系列图表,我想让一个变量出现在右边的所有图表中.目前虽然这只发生在其中一些,但我在如何强制执行我想要的订购同时保留适当的比例标签时不知所措.
library(ggplot2)
diamond.data <- diamonds[sample(nrow(diamonds), 1000), ]
plot <- ggplot(diamond.data, aes(carat, price, colour = clarity, shape = cut)) +
geom_point() + opts(legend.position = "top", legend.box = "horizontal")
plot # the legend will appear shape then colour
plot + labs(colour = "A", shape = "B") # legend will be colour then shape
plot + labs(colour = "Clarity", shape = "Cut") # legend will be shape then colour
Run Code Online (Sandbox Code Playgroud) 我正在使用lmer()
包lme4
来估计混合效果模型.这很有效,但现在我想在固定数量的迭代中运行估算过程,然后通过指定由上一个估算过程计算的起始值来恢复过程.
根据这方面的帮助,?lmer
可以通过设置参数:
start
- 这些是新的起始值,根据帮助,可以ST
从拟合模型中提取槽中的值并使用这些值,即使用x@ST
maxiter
- 作为命名参数提供给 control
因此,例如,假设我想要lme
使用iris
数据,可以尝试这样做:
library(lme4)
# Fit model with limited number of iterations
frm <- "Sepal.Length ~ Sepal.Width | Species"
x <- lmer(frm, data=iris,
verbose=TRUE, control=list(maxIter=1), model=FALSE)
# Capture starting values for next set of iterations
start <- list(ST=x@ST)
# Update model
twoStep <- lmer(frm, data=iris,
verbose=TRUE, control=list(maxIter=100), model=TRUE,
start=start)
Run Code Online (Sandbox Code Playgroud)
这有效.看一下输出,其中第一列是REML,即随机效应最大似然.特别注意模型2中的REML从模型1终止的地方开始:
> x <- lmer(frm, data=iris,
+ verbose=TRUE, control=list(maxIter=1), …
Run Code Online (Sandbox Code Playgroud) 是否存在连接路径的现有功能?
我知道这并不难实现,但仍...除了照顾尾随/
(或\
)我需要(我们是否写即照顾适当的操作系统路径格式检测C:\dir\file
或/dir/file
).
正如我所说,我相信我知道如何实施它; 问题是:我应该这样做吗?现有R包中是否已存在功能?
显然,John Chambers 在版本2.12中将R的Reference Classes添加到了R中.网上似乎没有太多的信息,但他们称之为R5课程,这意味着他们与S3和S4课程处于同一水平.
问题:什么是引用类,它如何适应现有的类类型?
r ×10
ggplot2 ×2
fixed-width ×1
formatting ×1
lme4 ×1
lmer ×1
methods ×1
mixed-models ×1
oop ×1
path ×1
r-faq ×1
s4 ×1