重新编码是调查数据的常见做法,但最明显的路线需要的时间比应有的多.
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)))
不是更快.
这是我尝试tolower()
从无法更改的文件(至少不是手动 - 太大)运行字符向量时收到的错误.
Error in tolower(m) : invalid multibyte string X
似乎是法国公司名称是É
角色的问题.虽然我没有调查所有这些(也不可能手动这样做).
这很奇怪,因为我的想法是编码问题会在过程中被识别出来read.csv()
,而不是在事后的操作过程中被识别出来.
有没有快速删除这些多字节字符串的方法?或者,也许是一种识别和转换的方法?或者甚至完全忽略它们?
当原始数据中存在联系时,有没有办法在排名中创建无间隙的排名(连续,整数排名值)?假设:
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()
功能实现这一目标?
完全披露:这也发布在ggplot2邮件列表中.(如果收到回复,我会更新)
我在这一点上有点迷失,我已经尝试过使用geom_polygon但是连续的尝试看起来比之前更糟糕.
我正在尝试重新创建的图像是这样,颜色不重要,但位置是:
除了创建它之外,我还需要能够用文本标记每个元素.
在这一点上,我不期待一个解决方案(虽然这将是理想的),但指针或类似的例子将是非常有帮助的.
我玩的一个选项是破解scale_shape并使用1,1作为coords.但坚持能够添加标签.
我用ggplot这样做的原因是因为我在一家公司的基础上生成记分卡.这只是其他图的4 x 10网格中的一个图(使用pushViewport)
注意:金字塔的顶层也可以是类似大小的矩形.
假设我有一个向量,我设置了一些属性:
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)
有没有办法,子集和持久化属性,而不必将它们保存到另一个临时对象?
额外奖励:哪里可以找到这种行为的文件?
我有点困难,想弄清楚如何使用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) 我在码头工具设置中有一个码头工具.本质上,该机器上有一个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组.但我仍然得到同样的错误.我已经重新开始了一段时间,所以,我有点不知道接下来要做什么.
有没有办法强制特定套接字上的用户权限?
我正在尝试使用ggplot2来创建和标记散点图.我正在绘制的变量都被缩放,使得水平轴和垂直轴以标准偏差(1,2,3,4,...平均值)为单位绘制.我希望能够做的是仅标记那些超出平均值标准差的限制的元素.理想情况下,此标签将基于另一列数据.
有没有办法做到这一点?
我查看了在线手册,但是我无法找到有关为绘图数据定义标签的任何信息.
感谢帮助!
谢谢!
BEB
在stats包中,有一个非常有用的函数叫做reorder().在gdata包中,还有一个名为reorder()的函数.
如何从stats强制reorder(),而不是在加载gdata包时被覆盖?或者,有没有办法引用您想要使用的重新排序()?
假设您要为您创建的应用程序的主要更改设置测试环境,并且您希望确保系统中存在的那些数据可以轻松加载到新系统中.
Django提供用于导出和加载数据的命令行工具.通过dumpdata
和loaddata
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
过程中禁用信号调用?
可能相关: