小编Mik*_*kko的帖子

使用Mac OS X加载rgl包时出错

我正在尝试在Mac OS X(Lion 10.7.3)下为R(2.14.2)安装rgl软件包(0.92.858).当我尝试加载它(库(rgl))时,我收到以下错误:

  Error : .onLoad failed in loadNamespace() for 'rgl', details:
  call: dyn.load(file, DLLpath = DLLpath, ...)
  error: unable to load shared object '/Library/Frameworks/R.framework/Versions/2.14/Resources/library/rgl/libs/x86_64/aglrgl.so':
  dlopen(/Library/Frameworks/R.framework/Versions/2.14/Resources/library/rgl/libs/x86_64/aglrgl.so, 6): Symbol not found: __ZN3gui13OSXGUIFactory12hasEventLoopEv
  Referenced from: /Library/Frameworks/R.framework/Versions/2.14/Resources/library/rgl/libs/x86_64/aglrgl.so
  Expected in: dynamic lookup
Run Code Online (Sandbox Code Playgroud)

我有一台带有挪威键盘的Mac.也许这与这个问题有关?但是,我得到了同样的错误,即使我将语言改为美国有没有人遇到过类似的问题?有什么办法解决它吗?

macos installation r package rgl

18
推荐指数
2
解决办法
3万
查看次数

R:在某个角色之后大写一切

我想把第一个后面的字符向量中的所有内容都大写_.例如,以下向量:

x <- c("NYC_23df", "BOS_3_rb", "mgh_3_3_f") 
Run Code Online (Sandbox Code Playgroud)

应该这样出来:

"NYC_23DF" "BOS_3_RB" "mgh_3_3_F"
Run Code Online (Sandbox Code Playgroud)

我一直试图使用正则表达式,但我无法做到这一点.任何建议,将不胜感激.

regex r capitalization

16
推荐指数
2
解决办法
3108
查看次数

如何在两个级别上躲避pointrange ggplots?

我想制作一个点范围图,其中组的点不相互堆叠.情节应如下所示:在此输入图像描述:

我做躲避的最佳尝试是在道奇论证中使用向量:

library(ggplot2)

dat <- structure(list(Treatment = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 
2L, 2L, 2L, 2L, 2L, 2L), .Label = c("A", "B"), class = "factor"), 
    Temp = structure(c(1L, 1L, 1L, 2L, 2L, 2L, 1L, 1L, 1L, 2L, 
    2L, 2L), .Label = c("10", "20"), class = "factor"), Rep = c(1L, 
    2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L), Meas = c(3L, 
    2L, 2L, 2L, 6L, 4L, 4L, 3L, 5L, 1L, 2L, 3L), SD = c(2L, 3L, …
Run Code Online (Sandbox Code Playgroud)

graphics r ggplot2

15
推荐指数
1
解决办法
5416
查看次数

如何通过更改x轴将已知值拟合到已知曲线

这是一个交叉验证问题的连续统一体,在那里我询问了解决该问题的合理方法.这个问题更加面向编程,因此我将其发布在SO上.

背景

我有一条已知日期超过一年的曲线.该曲线的y值是根据日常温度和盐度记录计算的d18O值的预测.我还测量了由碳酸钙组成的壳的d18O值.沿距离轴测量这些值,其中第一次和最后一次测量大致(但不是精确地)与曲线的开始和结束同时发生.

已知d18O值与某些未知随机误差内的曲线中的预测值匹配.我希望通过改变测量值的x轴(或者至少通过将索引与曲线中的索引匹配)来获得曲线测量值的最佳拟合.通过这种方式,我可以估算出测量值的日期,并可以进一步估算壳体在一年中的增长率.预计增长率可变,并且可能存在增长中断(即增长停止).但是,测量值之间增长必须> 0(约束).

示例数据

以下是示例数据集(curvemeasured):

meas <- structure(list(index = 1:10, distance = c(0.1, 1, 3, 5, 7, 8, 
13, 20, 22, 25), value = c(3.5, 4.2, 4.5, 4.4, 4.7, 4.8, 5.1, 
4.9, 4.1, 3.7)), .Names = c("index", "distance", "value"), class = "data.frame",
row.names = c(NA, -10L))   

curve <- structure(list(date = structure(c(15218, 15219, 15220, 15221, 
15222, 15223, 15224, 15225, 15226, 15227, 15228, 15229, …
Run Code Online (Sandbox Code Playgroud)

r data-fitting

11
推荐指数
1
解决办法
657
查看次数

无论操作系统如何,如何使 CRAN 包只下载一次数据?

所述CRAN政策限制ř封装尺寸为5 MB,这是对小的图形的应用,如映射。有多种处理封装尺寸限制的方法,所有这些方法都有其缺点。下面列出了替代方案。

我的问题是:如何使R包只下载一次数据文件(即它们保存到R重新启动后找到它们的地方)?该解决方案应该适用于所有常见的 CRAN 平台。

我一直在为 R开发一个映射包,它应该在ggplot2 中绘制全球任何地方的测深图。我列出了在我遇到的 CRAN 包中处理大型数据文件的替代方法。替代方案是在编写地图时考虑到的,但适用于需要大型单个文件的任何情况:

  1. 大文件移动到数据包中,并使原始包依赖于数据包。

    • a)如果数据包<5Mb,可以上传到CRAN,可以在DESCRIPTION字段中做原始依赖或者导入数据包。用户可以install.packages()像使用任何其他 CRAN 包一样简单地使用该功能。事情进展顺利,每个人都很开心。
    • b)如果数据包大于 5 Mb,事情就会变得混乱。理论上,一种替代方法是为每个文件制作一个单独的数据包,前提是数据文件都小于 5 Mb。然后可以对每个数据包使用 1a 中的方法。这个替代方案太老套了,以至于我没有勇气在实践中尝试它。如果有人在评论中听到会很有趣。
    • c)另一个更好的选择是使用drat 包制作数据包,例如,到 GitHub。这种替代方案的好处是用户可以编写install.packages()从 CRAN 安装原始包,但对开发人员也有不少缺点。设置数据包以通过所有 CRAN 检查可能有点困难,因为目前在线任何地方都没有正确指定所有步骤:原始包必须请求安装数据包的许可;对于 R 的当前开发版本,数据包必须作为单独的二进制文件分发,至少适用于 Windows 和 Mac,但也可能适用于 drat 存储库中的 Fedora;数据包应Suggests:URL一起列出Additional_repositories:在描述文件; 提一下我目前遇到的一些惊喜。总而言之,这种替代方案对用户来说很好,但需要开发人员进行维护。
  2. 一些映射包(例如marmap)将数据下载到临时文件来自外部服务器。这种方法的优点是易于满足 CRAN 要求,并且用户不必存储比应用程序所需更多的数据。该方法还允许在下载函数中指定分辨率,这对于“缩放”地图非常有用。缺点是该过程必然比简单地在本地存储地图数据花费更多时间。另一个缺点是地图数据需要以栅格格式分发(或者服务器必须裁剪矢量)。在撰写本文时,与栅格数据相比,矢量数据允许在 R 和 ggplot2 中更轻松地操作颜色和样式。由于元素不受分辨率的限制,因此矢量还可以使图形更清晰。第三个缺点是下载方法(据我所知)必须针对临时文件(即 …

gis r download cran

11
推荐指数
1
解决办法
331
查看次数

根据另一列中的最高值选择一个值

我不明白为什么我找不到解决方案,因为我觉得这是一个非常基本的问题.那么需要寻求帮助.我想按月重新安排空气质量数据集,每个月的最大温度值.另外,我想找到每个月最高温度的相应日期.什么是最懒惰(代码方式)的方法呢?

我试过没有成功:

require(reshape2)
names(airquality) <- tolower(names(airquality))
mm <- melt(airquality, id.vars = c("month", "day"), meas = c("temp"))

dcast(mm, month + day ~ variable, max)
aggregate(formula = temp ~ month + day, data = airquality, FUN = max)
Run Code Online (Sandbox Code Playgroud)

我是这样的:

month day temp
5     7    89
...
Run Code Online (Sandbox Code Playgroud)

r reshape2

8
推荐指数
2
解决办法
5141
查看次数

将一周中的几周转换为日期

我有一个数据集,包含从年初开始的周数(%W),我想将其转换为日期,以便在x轴上使用日期绘制它

dat <- structure(data.frame(week = c(22, 34, 15), year = c(2009, 2009, 2010), x = c(3.4, 5.2, 1.3)))
Run Code Online (Sandbox Code Playgroud)

我尝试根据之前的问题转换周数,但最终得到的"YYYY-10-01"是每个日期.

as.Date(paste("01", dat$week, dat$year, sep = "-"), format = "%d-%W-%Y")
Run Code Online (Sandbox Code Playgroud)

为什么这样做,怎么做对了?

r date type-conversion

8
推荐指数
1
解决办法
3482
查看次数

round_any相当于dplyr?

我正试图切换到"新" tidyverse生态系统,并试图避免加载Wickham 等人的旧包装.我过去常常依赖我的编码.我发现round_any功能从plyr在许多情况下有用的地方,我需要定制四舍五入为图,表格等EG

x <- c(1.1, 1.0, 0.99, 0.1, 0.01, 0.001) 

library(plyr)    

round_any(x, 0.1, floor)
# [1] 1.1 1.0 0.9 0.1 0.0 0.0
Run Code Online (Sandbox Code Playgroud)

是否有round_any与plyr包相同的功能tidyverse

r rounding plyr dplyr tidyverse

8
推荐指数
1
解决办法
2192
查看次数

log10规模的细分注释在细分结束和开始时的工作方式不同?

我在ggplot中发现了一个相当令人困惑的功能,同时尝试在log10规模上注释段.以下代码生成以下图表:

library(ggplot2)
dat <- data.frame(x = x <- 1:1000, y = log(x)) 
ggplot(dat, aes(x = x, y = y)) +
geom_line(size = 2) + scale_x_log10() +
annotate("segment", x = 0, xend = log10(100), y = log(100), yend = log(100), linetype = 2) +
annotate("segment", x = log10(100), xend = log10(100), y = 0, yend = log(100), linetype = 2)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

而这正是我所追求的:

ggplot(dat, aes(x = x, y = y)) +
geom_line(size = 2) + scale_x_log10() +
annotate("segment", x = 0, xend = …
Run Code Online (Sandbox Code Playgroud)

plot logarithm r ggplot2

7
推荐指数
1
解决办法
489
查看次数

如何在ggplot2中将表达式设置为facets的轴文本?

我试图在facet环境中将表达式设置为x轴文本ggplot2,标签长度不等.例如:

dat <- structure(list(Species = structure(c(1L, 1L, 1L, 1L, 2L, 2L, 
2L, 2L, 2L), .Label = c("A", "B"), class = "factor"), Individual = structure(c(1L, 
2L, 3L, 5L, 1L, 2L, 3L, 4L, 5L), .Label = c("1", "2", "3", "4", 
"expression(bar(\"x\"))"), class = "factor"), mean = c(45, 32, 
100, 59, 65, 110, 87, 93, 88.75), min = c(34, 20, 89, 47.66666667, 
54, 100, 67, 85, 76.5), max = c(54, 42, 110, 68.66666667, 76, 
120, 99, 105, 100)), .Names = c("Species", …
Run Code Online (Sandbox Code Playgroud)

expression r ggplot2

6
推荐指数
1
解决办法
1656
查看次数