我似乎错过了ggplot2如何工作的变化.我有一个统计教科书的例子(A. Field(2012),使用R,p.593发现统计数据),我确信它可以工作,但现在不再产生分组数据之间的连接线.
这是示例数据:
participant<-gl(20, 9, labels = c("P01", "P02", "P03", "P04", "P05", "P06", "P07", "P08", "P09", "P10", "P11", "P12", "P13", "P14", "P15", "P16", "P17", "P18", "P19", "P20" ))
drink<-gl(3, 3, 180, labels = c("Beer", "Wine", "Water"))
imagery<-gl(3, 1, 180, labels = c("Positive", "Negative", "Neutral"))
groups<-gl(9, 1, 180, labels = c("beerpos", "beerneg", "beerneut", "winepos", "wineneg", "wineneut", "waterpos", "waterneg", "waterneut"))
attitude<-c(1, 6, 5, 38, -5, 4, 10, -14, -2, 26, 27, 27, 23, -15, 14, 21, -6, 0, 1, -19, -10, 28, …Run Code Online (Sandbox Code Playgroud) 是否可以直接将整数SEXP参数转换为整数而无需先将其转换为整数向量?
例:
#include <Rcpp.h>
SEXP f(SEXP n)
{
Rcpp::IntegerVector n_vec(n);
int n1 = n_vec[0];
...
return R_NilValue;
}
Run Code Online (Sandbox Code Playgroud) 我有以下代码块:
temp <- "44C"
sub("^([-+]?[0-9]+)([CF])$","\\2",temp)
Run Code Online (Sandbox Code Playgroud)
这正确返回Ç.
然而,当我尝试
temp <- "44"
sub("^([-+]?[0-9]+)([CF])$","\\2",temp)
Run Code Online (Sandbox Code Playgroud)
我期待一个空的矢量.相反,我得到" 44 ".
我说错了吗?
我正在使用该R软件包bnlearn来估计贝叶斯网络结构.它使用parallel包内置并行化.但是,这不起作用.
使用联机帮助页中的示例bnlearn::parallel integration:
library(parallel)
library(bnlearn)
cl = makeCluster(2)
# check it works.
clusterEvalQ(cl, runif(10)) # -> this works
data(learning.test)
res = gs(learning.test, cluster = cl)
Run Code Online (Sandbox Code Playgroud)
我在这里得到错误 "Error in check.cluster(cluster) : cluster is not a valid cluster object."
有人知道怎么做这个吗?
set.seed(123)
library(data.table)
library(ggplot2)
dat=data.table(data.frame(a=rnorm(12),b=rnorm(12),c=rep(c(1,2),6),d=rep(c(1,2,3,4),3)))
ggplot(dat,aes(a,c,colour=d)) + geom_point() # line 1
ggplot(dat,aes(a,c,shape=d)) + geom_point() # line 2
Run Code Online (Sandbox Code Playgroud)
为什么第1行工作但第2行不工作?这不仅仅是地块的外观差异吗?
谢谢
我有一个数字变量,表示样本中检测到的病毒颗粒的数量.值范围从约20到约40并且是连续的.对于我的分析,实际数字对我来说并不重要,我只关心数字是否高于或低于截止值,这表示样本应该被认为是正面还是负面.
对于低于截止值(38)的样本,我想指定"TRUE",并将所有更高的数字指定为"FALSE".谁能给我一个如何在R中做到这一点的建议?
我希望我提供了足够的信息,我对这一切都很陌生.提前谢谢,希瑟
我有一个简单的自然样条(df = 3)模型,我试图预测一些样本观察.使用该函数predict(),我能够获得样本内观察的拟合值,但我无法获得新观察的预测值.
这是我的代码:
library(splines)
set.seed(12345)
x <- seq(0, 2, by = 0.01)
y <- rnorm(length(x)) + 2*sin(2*pi*(x-1/4))
# My n.s fit:
fit.temp <- lm(y ~ ns(x, knots = seq(0.01, 2, by = 0.1)))
# Getting fitted values:
fit.temp.values <- predict(fit.temp,interval="prediction", level = 1 - 0.05)
# Plotting the data, the fit, and the 95% CI:
plot(x, y, ylim = c(-6, +6))
lines(x, fit.temp.values[,1], col = "darkred")
lines(x, fit.temp.values[,2], col = "darkblue", lty = 2)
lines(x, fit.temp.values[,3], col …Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个带有许多hexbin图的 PDF ,我希望每页有特定数量的图。
这个有效:
PDFPath = "C:\\temp\\some.pdf"
pdf(file=PDFPath)
par(mfrow = c(2,2))
for (i in seq(5,10))
{
VAR1 = rnorm(i)
VAR2 = rnorm(i)
plot(VAR1, VAR2)
}
dev.off()
Run Code Online (Sandbox Code Playgroud)
这个不行。它每页只生成一个图:
library(hexbin)
PDFPath = "C:\\temp\\some.pdf"
pdf(file = PDFPath)
par(mfrow = c(2,2))
for (i in seq(5,10))
{
VAR1 = rnorm(i)
VAR2 = rnorm(i)
plot(hexbinplot(VAR1 ~ VAR2))
}
dev.off()
Run Code Online (Sandbox Code Playgroud)
关于出了什么问题的任何想法?
编辑:
我刚刚注意到,原因是mfrow仅指基础图形而不是网格图形。有没有办法实现类似的结果hexbin?
在ggplot中,我们可以通过在数据框中指定具有条形高度的列来创建条形图
library("ggplot2")
library(plyr)
mm <- ddply(mtcars, "cyl", summarise, mmpg = mean(mpg))
ggplot(mm, aes(x = factor(cyl), y = mmpg)) + geom_bar(stat = "identity")
Run Code Online (Sandbox Code Playgroud)
但是,我无法弄清楚如何制作一个类似的情节,指出了条形的顶部和底部.例如,使用下面的数据
df <- read.table(text = " id min max
Sp1 8.5 13.2
Sp2 11.7 14.5
Sp3 14.7 17.7 ", header=TRUE)
Run Code Online (Sandbox Code Playgroud)
我们会得到一个非常类似的情节:

有什么建议?
我正在使用R,我需要设置一个循环(我认为),我从日期中提取月份并指定一个季节.我想将冬季分配到12, 1, 2;春季到3, 4, 5;夏季到6, 7, 8;秋季,9, 10, 11.我有一部分数据如下.我对循环很糟糕,无法弄明白.同样对于约会,我不确定像lubridate这样的软件包是如何工作的
"","UT_TDS_ID_2011.Monitoring.Location.ID","UT_TDS_ID_2011.Activity.Start.Date","UT_TDS_ID_2011.Value","UT_TDS_ID_2011.Season"
"1",4930585,"7/28/2010 0:00",196,""
"2",4933115,"4/21/2011 0:00",402,""
"3",4933115,"7/23/2010 0:00",506,""
"4",4933115,"6/14/2011 0:00",204,""
"8",4933115,"12/3/2010 0:00",556,""
"9",4933157,"11/18/2010 0:00",318,""
"10",4933157,"11/6/2010 0:00",328,""
"11",4933157,"7/23/2010 0:00",290,""
"12",4933157,"6/14/2011 0:00",250,""
Run Code Online (Sandbox Code Playgroud)