今天我已经意识到包装中的silhouette
图形cluster
无法正确显示RStudio
.Google搜索显示其他人遇到此问题:
http://support.rstudio.org/help/discussions/problems/3094-plotsnot-showing-up-in-r-studio
作为R的新手,我不清楚这个问题是否已在这个问题得到解决!所以我的问题是:有没有办法让silhouette
情节正确显示RStudio
?
谢谢你的帮助.
示例脚本:
library(cluster)
data(xclara)
km <- kmeans(xclara,3)
dissE <- daisy(xclara)
sk <- silhouette(km$cl, dissE)
plot(sk)
Run Code Online (Sandbox Code Playgroud) 我非常绝望地尝试在一个地块上调整一个rasterstack的两个关卡.似乎rasterVis::levelplot
没有par(mfrow = c(...))
选择拆分窗格.使用两个rasterstacks的示例应在新的绘图窗口上并排排列:
f <- system.file("external/test.grd", package="raster")
r1 <- stack(raster(f),log(raster(f)))
r2 <- stack(raster(f)-500,raster(f)+500)
par(mfrow=c(2,2))
levelplot(r1)
levelplot(r2)
Run Code Online (Sandbox Code Playgroud)
在这里,levelplot(r1)
正在全尺寸窗口上绘制,而levelplot(r2)
不幸的是正在绘画levelplot(r1)
.
我试着玩,levelplot
用print
函数包装调用,这split
和newpage = false
选项一样.不幸的是,我没有得到如何使用split
正确的扭曲,所以我最终只有沮丧.
我非常感谢你的帮助,谢谢
和我
我试图使用新的"sf"包来操纵R中的一些巴西人口普查数据.我能够导入数据,但是当我尝试创建原始多边形的质心时出现错误
library(sf)
#Donwload data
filepath <- 'ftp://geoftp.ibge.gov.br/organizacao_do_territorio/malhas_territoriais/malhas_de_setores_censitarios__divisoes_intramunicipais/censo_2010/setores_censitarios_shp/ac/ac_setores_censitarios.zip'
download.file(filepath,'ac_setores_censitarios.zip')
unzip('ac_setores_censitarios.zip')
d <- st_read('12SEE250GC_SIR.shp',stringsAsFactors = F)
Run Code Online (Sandbox Code Playgroud)
现在我尝试创建一个包含"几何体"列的质心的新几何列,但是会收到错误:
d$centroid <- st_centroid(d$geometry)
Warning message:
In st_centroid.sfc(d$geometry) :
st_centroid does not give correct centroids for longitude/latitude data
Run Code Online (Sandbox Code Playgroud)
我怎么解决这个问题?
我正在尝试在R中运行rjags(通过Rstudio)来估计模型的参数alpha&beta和超参数tau.nu
:
y_i|x_i~pois(eta_i),
eta_i=exp(alpha + beta*x_i + nu_i),
nu_i~N(0,tau.nu)
Run Code Online (Sandbox Code Playgroud)
有我的代码:
#generating data
N = 1000
x = rnorm(N, mean=3,sd=1)
nu = rnorm(N,0,0.01)
eta = exp(1 + 2*x + nu)
y = rpois(N,eta)
data=data.frame(y=y,x=x)
###MCMC
library(rjags)
library(coda)
mod_string= "model {
for(i in 1:1000) {
y[i]~dpois(eta[i])
eta[i]=exp(alpha+beta*x[i]+nu[i])
nu[i]~dnorm(0,tau.nu)
}
alpha ~ dnorm(0,0.001)
beta ~ dnorm(0,0.001)
tau.nu ~ dgamma(0.01,0.01)
}"
params = c("alpha","beta","tau.nu")
inits = function() {
inits = list("alpha"=rnorm(1,0,100),"beta"=rnorm(1,0,80),"tau.nu"=rgamma(1,1,1))
}
mod = jags.model(textConnection(mod_string), data=data, inits=inits, n.chains =3)
update(mod,5000)
mod_sim = coda.samples(model=mod, …
Run Code Online (Sandbox Code Playgroud) 我正在使用pscl
R中的软件包并尝试使其生成可测试/可重现的结果.我已经看到了在底层的C代码,它看起来好像GetRNGstate()
和PutRNGstate()
被称为在正确的地方,但它似乎是不可能从MCMC模型重复输出.
我已经simulationResult
从SoDA包中打包了函数,因此我可以验证R端的每个模拟R的启动状态.
library(pscl)
library(SoDA)
run1 <- simulationResult(
ideal(s109,
normalize=TRUE,
maxiter = 500,
thin = 10,
burnin = 0),
seed = 42)
run2 <- simulationResult(
ideal(s109,
normalize=TRUE,
maxiter = 500,
thin = 10,
burnin = 0),
seed = 42)
Run Code Online (Sandbox Code Playgroud)
我们可以验证起始状态至少在R方面是相同的:
all.equal(run1@firstState, run2@firstState)
Run Code Online (Sandbox Code Playgroud)
但输出是不同的:
all.equal(run1@result$xbar, run2@result$xbar)
Run Code Online (Sandbox Code Playgroud)
我可以增加迭代次数,但如果RNG状态得到传播则这并不重要.我错过了一些非常简单的事吗?谢谢.
编辑:我还应该注意all.equal(run1@lastState, run2@lastState)
(每次运行的结束状态)应该是相同的但它们最终会有所不同.我的猜测是,被C称为R RNG功能外应急的一些源被撞击数的倍那些RNG函数被调用.好奇.
EDIT2
我还应该在OS X 10.8.4上使用pscl 1.04.4添加我的R 3.0.1.
使用案例: 我使用riverplot包绘制sankey图表.我需要调整图中节点标签的文本大小.在我的情况下,默认大小太大了.
问题,我已经尝试过了:
不幸的是,包不适用于cex
参数.该软件包的开发人员没有向我提供指导.r可
重现的例子:
library(riverplot)
plot(riverplot.example())
Run Code Online (Sandbox Code Playgroud)
产生:
题:
如何将节点标签(A,B,...)调整为比默认值更小或更大的尺寸?
我创建了一个data.table,它有6列.我的data.table有一个列可以计算两个位置:位置1和位置2.我正在尝试使用distm函数来计算每行上位置之间的距离,从而创建第7列.geosphere包中的distm包需要针对每个纬度/长度组合使用两个不同的向量.我的下面的代码不起作用,所以我试图弄清楚如何为函数提供向量.
LOC_1_ID LOC1_LAT_CORD LOC1_LONG_CORD LOC_2_ID LOC2_LAT_CORD LOC2_LONG_CORD
1 35.68440 -80.48090 70624 34.86752 -82.46632
6 35.49770 -80.62870 70624 34.86752 -82.46632
10 35.66042 -80.50053 70624 34.86752 -82.46632
Run Code Online (Sandbox Code Playgroud)
假设res保存data.table,下面的代码不起作用.
res[,DISTANCE := distm(c(LOC1_LAT_CORD, LOC1_LONG_CORD),c(LOC2_LAT_CORD, LOC2_LONG_CORD), fun=distHaversine)*0.000621371]
Run Code Online (Sandbox Code Playgroud)
如果我要拉出每个向量,该函数工作正常.
loc1 <- res[LOC1_ID == 1,.(LOC1_LAT_CORD, LOC1_LONG_CORD)]
loc2 <- res[LOC2_ID==70624,.(LOC2_LAT_CORD, LOC2_LONG_CORD)]
distm(loc1, loc2, fun=distHaversine)
Run Code Online (Sandbox Code Playgroud)
真的,我的问题是当该函数需要向量作为参数时,如何应用函数来选择data.table中的列.
我的问题是基于这个问题.使用它我写下面的代码,其中第一组坐标是纽约LGA机场,而第二组坐标是纽约EWR机场.我得到了答案33713.那是英里还是公里?一个快速的谷歌检查说,距离应该是33英里(但它不是直线/弧距离:(这是一个公路的距离).包文件说答案是以米为单位.请澄清.这是一个给出2个坐标找到地球上距离的好方法?我怎样才能在里程中找到答案?
library(geosphere)
distm (c(40.777250, -73.872610), c(40.6895, -74.1745), fun = distHaversine)
[,1]
[1,] 33713.61
Run Code Online (Sandbox Code Playgroud) 实际上,这个问题包含针对相同行为的两个问题.
如何将文本(因每个面板而异)添加到面板区域中的固定位置?我知道panel.text
并latticeExtra::layer
解决方案,但它使用绘图区域坐标添加文本.例如,我想在每个面板的右下角添加文本,即使它们的比例不同.
如何从levelplot面板区域添加文本?这里解释的方法要求levelplot有一个plot_01.legend.top.vp
区域来添加我没有的文本,并且trellis
之前绘制了对象.此外,我想在左下ylab
图中添加文字.我ylab
在这里用来说明行的含义但我需要第二个ylab来表示y轴值.我发现了这个问题的另一个
问题,但它不起作用.
上图是由raster::stack
对象和rasterVis::levelplot
方法创建的.我同意一个肮脏的解决方案,即使我更喜欢优雅的解决方案.尽管有上述问题,我仍然对其他使用的方法持开放态度levelplot
.
我有一个包含样本分类的数据框:
Seq_ID Family Father Mother Sex Role Type
<chr> <dbl> <chr> <chr> <chr> <chr> <chr>
1 SSC02219 11000. 0 0 Male Father Parent
2 SSC02217 11000. 0 0 Female Mother Parent
3 SSC02254 11000. SSC02219 SSC02217 Male Proband Child
4 SSC02220 11000. SSC02219 SSC02217 Female Sibling Child
5 SSC02184 11001. 0 0 Male Father Parent
6 SSC02181 11001. 0 0 Female Mother Parent
7 SSC02178 11001. SSC02184 SSC02181 Male Proband Child
8 SSC03092 11002. 0 0 Male Father Parent
9 …
Run Code Online (Sandbox Code Playgroud)