我需要在注释中包含所有浮点数,ggplot以在小数点分隔符后显示3位数.但是我遇到了这个问题:
require(ggplot2)
data(iris)
a <- 1.8
b <- 0.9
ggplot(iris, aes(Sepal.Length, Petal.Length))+
geom_point()+
annotate("text", 7, 3,
label = paste0("y == ", format(a, digits = 3, nsmall = 3), " %*%z^",
format(b, digits = 3, nsmall = 3)), parse = TRUE)
ggplot(iris, aes(Sepal.Length, Petal.Length))+
geom_point()+
annotate("text", 7, 3,
label = sprintf("y == %0.3f %%*%%z^ %0.3f", a,b), parse = TRUE)
Run Code Online (Sandbox Code Playgroud)
都生成只有一位小数的图.很明显,如果我改为parse = FALSE,那么情节会带有正确的小数位数,但它的格式(很明显)远远超出预期的小数.
除了难以介绍文本外,还有哪些其他选项可以实现这一目标?
我已阅读如何使一个伟大的[R重复的例子,著名的线程,但有没有具体的建议如何提出一个伟大的ggplot,lattice或基本情节重大R第。
您建立出色范例的秘诀是什么?您应该包括或避免使用哪些信息?
您如何陈述预期的输出?建议的附件大小和格式是什么?
我是python的新手,我需要在课程中使用它.我在Freemat/octave/matlab .m文件中开发了解决方案(一种优化算法),并希望从Python调用它(python代码将由一个评分python脚本调用).
.m文件读取名为tmp.data的文件,并将输出写入output.txt.然后,python脚本应该从该输出中读取并将其转换为分级脚本所期望的结果.
所有运行都很好,除了我无法使Python等待对Matlab的调用完成,因此在以下行上生成错误.
这是代码:
#!/usr/bin/python
# -*- coding: utf-8 -*-
from collections import namedtuple
Item = namedtuple("Item", ['index', 'value', 'weight'])
import subprocess
import os
from subprocess import Popen, PIPE
def solve_it(input_data):
# Modify this code to run your optimization algorithm
# Write the inputData to a temporay file
tmp_file_name = 'tmp.data'
tmp_file = open(tmp_file_name, 'w')
tmp_file.write(input_data)
tmp_file.close()
# call matlab (or any other solver)
# subprocess.call('matlab -r gp(\'tmp.data\')', shell=1)
# run=os.system
# a=run('matlab -r gp(\'tmp.data\')')
# process = Popen('matlab …Run Code Online (Sandbox Code Playgroud) 我有一个数据表可以减少到这个:
set.seed(1);
dt<-data.table(form=c(1,1,1,2,3,3,3,4,4,5),
mx=c("a","b","c","d","e","f","g","e","g","b"),
vr=runif(10,100,200),
usr=c("l","l","l","m","o","o","o","l","l","m"),
type=c("A","A","A","C","C","C","C","C","C","A"))
Run Code Online (Sandbox Code Playgroud)
我可以生成一个表格:
dt[,
list(n.form=length(unique(form)),n.mx=length(unique(mx)),tot.vr=sum(vr)),
by=usr]
Run Code Online (Sandbox Code Playgroud)
我无法计算的是A类公式的数量(每行是观察值,form是公式数).我试过了:
dt[,
list(n.form=length(unique(form)),n.mx=length(unique(mx)),tot.vr=sum(vr),n.A=sum(type=="A"),
by=usr]
Run Code Online (Sandbox Code Playgroud)
并且:
dt[,
list(n.form=length(unique(form)),n.mx=length(unique(mx)),tot.vr=sum(vr),n.A=length(unique(type=="A"))),
by=usr]
Run Code Online (Sandbox Code Playgroud)
但是没有一个考虑到发现的"A"数量需要与唯一的公式(form)数量相关的事实.
我想要的结果是:
usr n.form n.mx tot.vr n.A
1: l 2 5 750.0398 1
2: m 2 2 296.9994 1
3: o 1 3 504.4747 0
Run Code Online (Sandbox Code Playgroud)
但我找不到实现它的方法.任何光棚都非常受欢迎.谢谢,
======= 编辑添加 ========
我想知道有多少公式(唯一数字dt$form)是"A"类型(因此我可以计算总公式中的一部分).直接数(sum)是类型A 的观察总数,而存在(any)给出了我是否至少有一个类型为"A" 的公式,而不是该类型的公式数(这是我想要的) ).请注意,任何给定的公式将始终为"A"或"C"类型(在一个公式中不是混合类型)