小编Bra*_*sen的帖子

挑战:重新编码data.frame() - 让它更快

重新编码是调查数据的常见做法,但最明显的路线需要的时间比应有的多.

system.time()在我的机器上通过提供的样本数据完成相同任务的最快代码获胜.

## Sample data
dat <- cbind(rep(1:5,50000),rep(5:1,50000),rep(c(1,2,4,5,3),50000))
dat <- cbind(dat,dat,dat,dat,dat,dat,dat,dat,dat,dat,dat,dat)
dat <- as.data.frame(dat)
re.codes <- c("This","That","And","The","Other")
Run Code Online (Sandbox Code Playgroud)

代码优化.

for(x in 1:ncol(dat)) { 
    dat[,x] <- factor(dat[,x], labels=re.codes)
    }
Run Code Online (Sandbox Code Playgroud)

目前system.time():

   user  system elapsed 
   4.40    0.10    4.49 
Run Code Online (Sandbox Code Playgroud)

提示:dat <- lapply(1:ncol(dat), function(x) dat[,x] <- factor(dat[,x],labels=rc)))不是更快.

r dataframe

15
推荐指数
5
解决办法
704
查看次数

tolower()无效的多字节字符串出错

这是我尝试tolower()从无法更改的文件(至少不是手动 - 太大)运行字符向量时收到的错误.

Error in tolower(m) : invalid multibyte string X

似乎是法国公司名称是É角色的问题.虽然我没有调查所有这些(也不可能手动这样做).

这很奇怪,因为我的想法是编码问题会在过程中被识别出来read.csv(),而不是在事后的操作过程中被识别出来.

有没有快速删除这些多字节字符串的方法?或者,也许是一种识别和转换的方法?或者甚至完全忽略它们?

r

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

如果价值观之间存在联系,如何在没有差距的情况下获得排名?

当原始数据中存在联系时,有没有办法在排名中创建无间隙的排名(连续,整数排名值)?假设:

x <-  c(10, 10, 10, 5, 5, 20, 20)
rank(x)
# [1] 4.0 4.0 4.0 1.5 1.5 6.5 6.5
Run Code Online (Sandbox Code Playgroud)

在这种情况下,期望的结果将是:

my_rank(x)
[1] 2 2 2 1 1 3 3
Run Code Online (Sandbox Code Playgroud)

我打了所有的选项ties.method选项(average,max,min,random),其中没有一个是为了提供所需的结果.

是否有可能通过该rank()功能实现这一目标?

r

13
推荐指数
3
解决办法
2223
查看次数

R:使用ggplot创建自定义形状

完全披露:这也发布在ggplot2邮件列表中.(如果收到回复,我会更新)

我在这一点上有点迷失,我已经尝试过使用geom_polygon但是连续的尝试看起来比之前更糟糕.

我正在尝试重新创建的图像是这样,颜色不重要,但位置是:

在此输入图像描述

除了创建它之外,我还需要能够用文本标记每个元素.

在这一点上,我不期待一个解决方案(虽然这将是理想的),但指针或类似的例子将是非常有帮助的.

我玩的一个选项是破解scale_shape并使用1,1作为coords.但坚持能够添加标签.

我用ggplot这样做的原因是因为我在一家公司的基础上生成记分卡.这只是其他图的4 x 10网格中的一个图(使用pushViewport)

注意:金字塔的顶层也可以是类似大小的矩形.

r ggplot2

13
推荐指数
3
解决办法
3476
查看次数

subset()删除向量上的属性; 如何维持/坚持他们?

假设我有一个向量,我设置了一些属性:

vec <- sample(50:100,1000, replace=TRUE)
attr(vec, "someattr") <- "Hello World"
Run Code Online (Sandbox Code Playgroud)

当我对向量进行子集化时,属性将被删除.例如:

tmp.vec <- vec[which(vec > 80)]
attributes(tmp.vec) # Now NULL
Run Code Online (Sandbox Code Playgroud)

有没有办法,子集和持久化属性,而不必将它们保存到另一个临时对象?

额外奖励:哪里可以找到这种行为的文件?

attributes r vector subset persistent

13
推荐指数
1
解决办法
1307
查看次数

我可以在图中重新创建这个极坐标蜘蛛图吗?

我有点困难,想弄清楚如何使用plotly重建蜘蛛(或雷达)图表的下图.实际上,我甚至无法在最新版本的ggplot2中重新创建它,因为自1.0.1以来已经发生了重大变化.

这是一个示例图形:

在此输入图像描述

这是构建它的原始函数:

http://pcwww.liv.ac.uk/~william/Geodemographic%20Classifiability/func%20CreateRadialPlot.r

以下是原始函数如何工作的示例:

http://rstudio-pubs-static.s3.amazonaws.com/5795_e6e6411731bb4f1b9cc7eb49499c2082.html

这里有一些不那么虚假的数据:

d <- structure(list(Year = rep(c("2015","2016"),each=24),
                    Response = structure(rep(1L:24L,2), 
                                         .Label = c("Trustworthy", "Supportive", "Leading",
                                                    "Strong", "Dependable", "Consultative",
                                                    "Knowledgeable", "Sensible", 
                                                    "Intelligent", "Consistent", "Stable", 
                                                    "Innovative", "Aggressive", 
                                                    "Conservative", "Visionary", 
                                                    "Arrogant", "Professional", 
                                                    "Responsive", "Confident", "Accessible", 
                                                    "Timely", "Focused", "Niche", "None"),
                                         class = "factor"), 
                    Proportion = c(0.54, 0.48, 0.33, 0.35, 0.47, 0.3, 0.43, 0.29, 0.36,
                                   0.38, 0.45, 0.32, 0.27, 0.22, 0.26,0.95, 0.57, 0.42, 
                                   0.38, 0.5, 0.31, 0.31, 0.12, 0.88, 0.55, 0.55, 0.31,
                                   0.4, 0.5, 0.34, 0.53, 0.3, 0.41, 0.41, 0.46, …
Run Code Online (Sandbox Code Playgroud)

r plotly

13
推荐指数
2
解决办法
4391
查看次数

Docker权限错误中的Docker

我在码头工具设置中有一个码头工具.本质上,该机器上有一个jenkins CI服务器,它使用相同的机器docker socket为CI创建节点.

在我最近更新了docker之前,这很有效.我已经确定了这个问题,但我似乎无法找到合适的魔法让它发挥作用.

host $ docker exec -it myjenkins bash
jenkins@container $ docker ps
Got permission denied while trying to connect to the Docker daemon 
socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.26/containers/json: dial unix /var/run/docker.sock: connect: permission denied

host $ docker exec -it -u root -it myjenkins bash
root@container $ docker ps 
... docker ps from host container yay! ...
Run Code Online (Sandbox Code Playgroud)

所以这就是我所猜测的.我可以从容器内访问主机docker socket,但我似乎无法授予jenkins用户权限.

我添加了docker组,并将jenkins用户添加到docker组.但我仍然得到同样的错误.我已经重新开始了一段时间,所以,我有点不知道接下来要做什么.

有没有办法强制特定套接字上的用户权限?

jenkins docker

13
推荐指数
1
解决办法
8616
查看次数

ggplot2 Scatter Plot Labels

我正在尝试使用ggplot2来创建和标记散点图.我正在绘制的变量都被缩放,使得水平轴和垂直轴以标准偏差(1,2,3,4,...平均值)为单位绘制.我希望能够做的是仅标记那些超出平均值标准差的限制的元素.理想情况下,此标签将基于另一列数据.

有没有办法做到这一点?

我查看了在线手册,但是我无法找到有关为绘图数据定义标签的任何信息.

感谢帮助!

谢谢!

BEB

r ggplot2

12
推荐指数
1
解决办法
7142
查看次数

R:屏蔽功能

在stats包中,有一个非常有用的函数叫做reorder().在gdata包中,还有一个名为reorder()的函数.

如何从stats强制reorder(),而不是在加载gdata包时被覆盖?或者,有没有办法引用您想要使用的重新排序()?

r

12
推荐指数
3
解决办法
3696
查看次数

loaddata忽略或禁用post_save信号

假设您要为您创建的应用程序的主要更改设置测试环境,并且您希望确保系统中存在的那些数据可以轻松加载到新系统中.

Django提供用于导出和加载数据的命令行工具.通过dumpdataloaddata

python manage.py dumpdata app.Model > Model.json
python manage.py loaddata Model.json
Run Code Online (Sandbox Code Playgroud)

该文档标识(尽管未明确)在此过程中忽略某些信号:

处理夹具文件时,数据将按原样保存到数据库中.不调用模型定义的保存方法和pre_save信号.(来源)

有没有办法post_save在此loaddata过程中禁用信号调用?

可能相关:

django django-signals

12
推荐指数
1
解决办法
4442
查看次数