假设我想绘图x^2.我可以使用curve()如下.
curve(x^2, -5, 5)
Run Code Online (Sandbox Code Playgroud)
但是,我希望轴经过(0,0).我可以做如下的事情:
curve(x^2, -5, 5, axes=FALSE)
axis(1, pos=0)
axis(2, pos=0)
abline(h=0)
abline(v=0)
Run Code Online (Sandbox Code Playgroud)
我最终得到了类似下面的东西,看起来还不错.但我唯一的抱怨是,这种绘制轴的方式使得实际轴 - 例如x轴的-4到4之间的段 - 比右侧和左侧的段厚.y轴也是如此.我想知道是否有更好的方法来绘制轴.谢谢!

我尝试使用我创建的一些函数和脚本创建一个包(在Mac上使用X11).虽然R CMD检查正在进行,但它遇到了如下问题:
temp = trim(unlist(strsplit(lp.add(ranefterms[[i]]),
+ "\+")))
Error: '\+' is an unrecognized escape in character string starting "\+"
Run Code Online (Sandbox Code Playgroud)
然而,奇怪的是,我的函数实际上没有"\ +".相反,它有"\\+"(见下文).所以我不知道为什么"\\+"被识别为"\ +".
for(i in 1:n)
temp = trim(unlist(strsplit(lp.add(ranefterms[[i]]), '\\+')))
Run Code Online (Sandbox Code Playgroud)
为了进一步挖掘,我查看了Rcheck文件夹中的packageName-Ex.R文件.事实证明,在检查过程中所有的"\"都已更改为"\"(例如,我需要的两个斜杠,如strsplit()和grepl()等函数
我想知道它可能是什么原因.对不起,我无法想出一个可重现的例子......
我正在尝试使用OUTPUT. 但是,我遇到了 HY010 错误。以下查询/代码是我使用的:
string = """
SET NOCOUNT ON;
DECLARE @NEWID TABLE(ID INT);
INSERT INTO dbo.t1 (Username, Age)
OUTPUT inserted.id INTO @NEWID(ID)
VALUES(?, ?)
SELECT ID FROM @NEWID
"""
cursor.execute(string, "John Doe", 35)
cursor.commit()
id = cursor.fetchone()[0]
Run Code Online (Sandbox Code Playgroud)
最后一行id = cursor.fetchone()[0]导致 HY010 错误(见下文)。任何建议将不胜感激!
pyodbc.Error: ('HY010', '[HY010] [Microsoft][ODBC SQL Server Driver]Function sequence error (0) (SQLFetch)')
Run Code Online (Sandbox Code Playgroud) 我试图使用Python通过使用Window身份验证连接到SQL数据库.我在这里查看了一些帖子(例如,这里),但建议的方法似乎不起作用.
例如,我使用了以下代码:
cnxn = pyodbc.connect(driver='{SQL Server Native Client 11.0}',
server='SERVERNAME',
database='DATABASENAME',
trusted_connection='yes')
Run Code Online (Sandbox Code Playgroud)
但是我收到以下错误:
Error: ('28000', "[28000] [Microsoft][SQL Server Native Client 11.0][SQL Server]
Login failed for user 'DOMAIN\\username'. (18456) (SQLDriverConnect); [28000] [Microsoft]
[SQL Server Native Client 11.0][SQL Server]Login failed for user 'DOMAIN\\username'.
(18456)")
Run Code Online (Sandbox Code Playgroud)
(请注意,我在上面的错误消息中分别用DOMAIN和替换了实际的域名和用户名username.)
我用我也试过UID和PWD,这就导致了同样的错误.
最后,我试图通过以下从上面的链接的建议,更改服务帐户,但我的电脑上,没有Log On标签,当我去Properties的services.msc.
我想知道我做错了什么以及如何解决这个问题.
我写了一个制作情节的函数.我遇到的一个问题是需要生成可重现的图形.当然,一种解决方案是保存我生成的每个绘图的代码(即,保存我为函数参数设置的确切值).我想知道是否有一种方法可以捕获所有输入值,包括数据对象等,并将它们保存在列表中并将其作为输出返回.我想,一个简单的方法如下:
plot.foo <- function(x, main=NULL){
plot(x, main=main)
list(data=x, main=main)
}
Run Code Online (Sandbox Code Playgroud)
但是,我写的函数除了省略号参数(见下文)之外还有一堆参数,所以我想知道是否有更快的方法来保存所有的输入参数值.谢谢!
plot.foo <- function(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10,...){
...
}
Run Code Online (Sandbox Code Playgroud) 假设我想用以下数据制作一个图:
pairs <- c(1, 2, 2, 3, 2, 4, 2, 5, 2, 6, 2, 7, 2, 8, 2, 9, 2, 10, 2, 11, 4,
14, 4, 15, 6, 13, 6, 19, 6, 28, 6, 36, 7, 16, 7, 23, 7, 26, 7, 33,
7, 39, 7, 43, 8, 35, 8, 40, 9, 21, 9, 22, 9, 25, 9, 27, 9, 33, 9,
38, 10, 12, 10, 18, 10, 20, 10, 32, 10, 34, 10, 37, 10, 44, 10, 45,
10, …Run Code Online (Sandbox Code Playgroud) 我试着编写一个包装函数来批量进行似然比检验.我尝试包含update()来更新初始模型.但是,它似乎不是在函数内部查找对象,而是在全局环境中搜索对象.
fake <- data.frame(subj= rep(1:5, 4),
factor1 = rep(LETTERS[c(1,2,1,2)], each=5),
factor2 = rep(letters[1:2], each=10),
data=sort(rlnorm(20)))
foo <- function(){
temp <- fake
model1 <- lmer(data~factor1*factor2 + (1 |subj), temp)
model1a <- update(model1, ~.-factor1:factor2)
model1a}
Run Code Online (Sandbox Code Playgroud)
它在下面给出了一条错误消息:
Error in eval(expr, envir, enclos) : object 'factor1' not found
Run Code Online (Sandbox Code Playgroud)
无论如何在函数内进行update()搜索?谢谢!
编辑:
我犯了一个错误.我想把"temp"传给lmer而不是"假".
EDIT2:建议的一个方便的解决方案是简单地指定数据对象.虽然update()现在没有问题,但anova()似乎认为我试图比较的模型是基于不同的数据对象
foo <- function(){
temp <- fake
model1 <- lmer(data~factor1*factor2 + (1 |subj), data=temp)
model1a <- update(model1, ~.-factor1:factor2, data=temp)
anova(model1, model1a)
}
foo()
Run Code Online (Sandbox Code Playgroud)
我收到一条错误消息:
Error in anova(model1, model1b) :
all models must be …Run Code Online (Sandbox Code Playgroud) 假设我需要绘制如下数据集:
set.seed(1)
dataset <- sample(1:7, 1000, replace=T)
hist(dataset)
Run Code Online (Sandbox Code Playgroud)
正如您在下面的图中所看到的,两个最左边的垃圾箱之间没有任何空间,与其他垃圾箱不同.

我尝试改变xlim,但它没有用.基本上我想将每个数字(1到7)表示为一个bin,另外,我希望任何两个相邻的bin在它们之间有空间...谢谢!
我是新来的ggplot2.我想创建一个在其上有点的线图,其中点用不同的颜色填充点(参见下图).
假设我正在使用的数据集如下:
set.seed(100)
data<-data.frame(dv=c(rnorm(30), rnorm(30, mean=1), rnorm(30, mean=2)),
iv=rep(1:30, 3),
group=rep(letters[1:3], each=30))
Run Code Online (Sandbox Code Playgroud)
我尝试了以下代码:
p<-ggplot(data, aes(x=iv, y=dv, group=group, pch=group)) + geom_line() + geom_point()
p + scale_color_manual(values=rep("black",3))+ scale_shape(c(19,20,21)) +
scale_fill_manual(values=c("blue", "red","gray"))
p + scale_shape(c(19,20,21)) + scale_fill_manual(values=c("blue", "red","gray"))
Run Code Online (Sandbox Code Playgroud)
但我没有得到我想要的东西.我希望有人能指出我正确的方向.谢谢!
假设我想生成一种类似下面的树结构:
plot(0, type="n",xlim=c(0, 5), ylim=c(-3, 8), axes=FALSE, xlab="", ylab="", main="")
points(1, 2.5)
points(3, 5)
points(3, 0)
lines(c(1, 3), c(2.5, 5))
lines(c(1, 3), c(2.5, 0))
text(1, 2.5, adj=1, label="Parent ")
text(3, 5, adj=0, label=" Child 1")
text(3, 0, adj=0, label=" Child 2")
Run Code Online (Sandbox Code Playgroud)
我想知道是否有一种方法R可以产生类似于下面不同程度的S曲线的曲线.至关重要的是,如果能够在不诉诸的情况下创造这样的线路,那就太棒了ggplot.
编辑删除并作出答案