我想通过使用ggplot2重现下面的情节.我可以靠近,但不能删除顶部和右边界.下面我介绍几次使用ggplot2的尝试,包括在Stackoverflow上或通过Stackoverflow找到的一些建议.不幸的是,我无法将这些建议付诸实践.
我希望有人能够纠正下面的一个或多个代码片段.
谢谢你的任何建议.
# desired plot
a <- seq(1,20)
b <- a^0.25
plot(a,b, bty = "l")
library(ggplot2)
df <- as.data.frame(cbind(a,b))
# 1. ggplot2 default
ggplot(df, aes(x = a, y = b)) + geom_point()
# 2. removes background color
ggplot(df, aes(x = a, y = b)) + geom_point() + opts(panel.background = theme_rect(fill='white', colour='black'))
# 3. also removes gridlines
none <- theme_blank()
ggplot(df, aes(x = a, y = b)) + geom_point() + opts(panel.background = theme_rect(fill='white', colour='black')) + opts(panel.grid.major = none, panel.grid.minor = …Run Code Online (Sandbox Code Playgroud) 我有一个字符数据向量.矢量中的大多数元素由一个或多个字母后跟一个或多个数字组成.我希望将向量中的每个元素分成字符部分和数字部分.我在Stackoverflow.com上发现了类似的问题:
但是,上面给出的答案似乎并不完全适用于我的情况或我做错了什么.示例向量如下:
my.data <- c("aaa", "b11", "b21", "b101", "b111", "ccc1", "ddd1", "ccc20", "ddd13")
# I can obtain the number portion using:
gsub("[^[:digit:]]", "", my.data)
# However, I cannot obtaining the character portion using:
gsub("[:digit:]", "", my.data)
Run Code Online (Sandbox Code Playgroud)
我怎样才能获得角色部分?我在Windows 7 64位计算机上使用R版本2.14.1.
我正在尝试创建一个堆积条形图,但我无法定位图例,以便它不会与任何条形图重叠.我试过调整边距,设置xlim,使用单独的legend语句并在此搜索,都没有成功.实际上,示例数据集的代码来自StackOverflow.我使用基础R并且更喜欢基础R解决方案.谢谢你的任何建议.
setwd('c:/users/mmiller21/simple R programs/')
jpeg(filename = "barplot.jpeg")
set.seed(1234)
x <- replicate(8, round(10 * rexp(2000, 10)))
y <- apply(x, 2, function(column) table(factor(column, levels = 0:9)))
colnames(y) <- paste('A', seq(1,ncol(y),1), sep='')
rownames(y) <- paste('R', seq(1,nrow(y),1), sep='')
y
# A1 A2 A3 A4 A5 A6 A7 A8
# R1 769 800 790 806 792 787 834 801
# R2 779 733 793 757 786 744 731 776
# R3 284 297 278 272 263 301 280 275
# R4 …Run Code Online (Sandbox Code Playgroud) 我有一个肯定看起来非常微不足道的问题,但答案一直提到我:如何在for-loop中打印同一行上的多个变量的值?
我提出了两种解决方案,它们都不仅仅依赖于格式化print语句,而且我仍然感兴趣的是print,它本身是否可以用于以所需格式返回输出.
首先我提出for-loop包含一个解决方案的,然后我提出一个代表另一个解决方案的函数:
P <- 243.51
t <- 31 / 365
n <- 365
for (r in seq(0.15, 0.22, by = 0.01)) {
A <- P * ((1 + (r/ n))^ (n * t))
interest <- A - P
# this prints each variable on a separate line
print (r)
print (interest)
# this does not work
# print c(r, interest)
# this presents both variables on the same line, as desired
output <- …Run Code Online (Sandbox Code Playgroud) 是否可以在单个tapply或aggregate语句中包含两个函数?
下面我使用两个tapply语句和两个聚合语句:一个用于均值,一个用于SD.
我更愿意结合这些陈述.
my.Data = read.table(text = "
animal age sex weight
1 adult female 100
2 young male 75
3 adult male 90
4 adult female 95
5 young female 80
", sep = "", header = TRUE)
with(my.Data, tapply(weight, list(age, sex), function(x) {mean(x)}))
with(my.Data, tapply(weight, list(age, sex), function(x) {sd(x) }))
with(my.Data, aggregate(weight ~ age + sex, FUN = mean)
with(my.Data, aggregate(weight ~ age + sex, FUN = sd)
# this does not work:
with(my.Data, tapply(weight, list(age, sex), function(x) …Run Code Online (Sandbox Code Playgroud) 我是新手,Python并且尝试安装失败numpy.当前问题是部分错误消息读取Importing the multiarray numpy extension module failed.我无法在互联网上找到此错误消息,我正在寻求帮助.完整的错误消息位于此帖的底部.
首先,我认为我应该提供系统和版本的详细信息并描述我所做的事情.我Windows 10在64位计算机上运行,并Python 2.7.13从https://www.python.org/downloads/windows/安装
我也安装了Anaconda,也Python 2.7和一个64位的机器,从这里下载https://www.continuum.io/downloads. Anaconda跑Python 2.7.12,而不是Python 2.7.13.当我import numpy在AnacondaGUI 内部输入时,IPython不会出现错误或警告.尽管如此,我numpy从内部Python 2.7.13使用的印象IDLE (Python GUI)可能在计算上更快. Python 2.7.13首先出现在我的Path语句中.
我numpy-1.12.0rc2+mkl-cp27-cp27m-win_amd64.whl从http://www.lfd.uci.edu/~gohlke/pythonlibs/#jpype下载了 以下建议从这篇文章中安装numpy来自windows格式的轮式(这个平台上不支持的轮子.)我重命名:
numpy-1.12.0rc2+mkl-cp27-cp27m-win_amd64.whl 至:
numpy-1.12.0rc2+mkl-cp27-none-win32.whl
通过单击名称并编辑它来手动完成.重命名的文件位于文件夹中C:\Python27
然后我使用Windows命令窗口(cmd)更新pip输入:
python -m pip install --upgrade pip …Run Code Online (Sandbox Code Playgroud) 我想按组分列各个列,我的第一个想法是使用tapply.但是,我无法tapply上班.可以tapply用来汇总多列吗?如果没有,为什么不呢?
我已经广泛搜索了互联网,发现很多类似的问题早在2008年就已发布.但是,这些问题都没有直接得到解答.相反,响应总是建议使用不同的功能.
下面是一个示例数据集,我希望按州分配苹果,按州和国家分析李子.在此之下,我已经编译了许多替代方案tapply.
在底部,我展示了对tapply源代码的简单修改,允许
tapply执行所需的操作.
不过,也许我忽略了一种简单的方法来执行所需的操作tapply.我不是在寻找替代功能,但欢迎其他替代方案.
鉴于我对tapply源代码的修改很简单,我想知道为什么它或类似的东西还没有实现.
谢谢你的任何建议.如果我的问题是重复的,我很乐意将我的问题作为对其他问题的回答.
以下是示例数据集:
df.1 <- read.table(text = '
state county apples cherries plums
AA 1 1 2 3
AA 2 10 20 30
AA 3 100 200 300
BB 7 -1 -2 -3
BB 8 -10 -20 -30
BB 9 -100 -200 -300
', header = TRUE, stringsAsFactors = FALSE)
Run Code Online (Sandbox Code Playgroud)
这不起作用:
tapply(df.1, df.1$state, function(x) {colSums(x[,3:5])})
Run Code Online (Sandbox Code Playgroud)
帮助页面说:
tapply(X, INDEX, FUN …Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个选定的加拿大省/地区和选定的美国州的地图.到目前为止,最好的地图似乎是使用GADM数据生成的地图:http://www.gadm.org/
但是,我无法在同一张地图上绘制美国和加拿大的情节,也无法在选定的省/地区和州绘制地图.例如,我对阿拉斯加,育空,西北地区,不列颠哥伦比亚省,阿尔伯塔省和蒙大拿州等地感兴趣.
此外,美国地图似乎沿着国际日期线分开.
有人可以帮我:
也许spplot不允许用户指定投影.我没有看到在spplot帮助页面上选择投影的选项.我知道如何使用地图包中的地图功能选择投影,但这些地图看起来并不好看,我也无法用该功能绘制所需的省/地区和州的子集.
我不知道如何开始添加纬度 - 经度网格.但是,文件'sp.pdf'的第3.2节似乎解决了这个主题.
下面是我到目前为止提出的代码.我已经加载了我偶然发现的每个与地图相关的包,并注释了除省/地区或州边界之外的GADM数据.
不幸的是,到目前为止我只设法绘制了加拿大或美国的地图
library(maps)
library(mapproj)
library(mapdata)
library(rgeos)
library(maptools)
library(sp)
library(raster)
library(rgdal)
# can0<-getData('GADM', country="CAN", level=0) # Canada
can1<-getData('GADM', country="CAN", level=1) # provinces
# can2<-getData('GADM', country="CAN", level=2) # counties
plot(can1)
spplot(can1, "NAME_1") # colors the provinces and provides
# a color-coded legend for them
can1$NAME_1 # returns names of provinces/territories
# us0 <- getData('GADM', country="USA", level=0)
us1 <- getData('GADM', country="USA", level=1)
# us2 <- getData('GADM', country="USA", …Run Code Online (Sandbox Code Playgroud) 我有大量的数据集,每个数据集都包含一长列列名.在某些文件中,列名称都是大写字母,在某些文件中,只有列名的第一个字母大写.我需要附加数据集,并认为在数据集之间匹配列名的最简单方法是将全资本名称转换为只有首字母大写的名称.
我希望找到一个通用的解决方案,甚至可能是一个单行.
这是我的示例数据集.所需的名称包含在names语句中.
my.data2 <- "
landuse units grade CLAY LINCOLN BASINANDRANGE MCCARTNEY MAPLE
apple acres AAA 0 2 3 4 6
apple acres AA 1000 900 NA NA 700
pear acres AA 10.0 20 NA 30.0 40
peach acres AAA 500 400 350 300 200
"
my.data2 <- read.table(textConnection(my.data2), header=TRUE)
names(my.data2)[names(my.data2)=="CLAY"] <- "Clay"
names(my.data2)[names(my.data2)=="BASINANDRANGE"] <- "BasinandRange"
names(my.data2)[names(my.data2)=="LINCOLN"] <- "Lincoln"
names(my.data2)[names(my.data2)=="MCCARTNEY"] <- "McCartney"
names(my.data2)[names(my.data2)=="MAPLE"] <- "Maple"
my.data2
Run Code Online (Sandbox Code Playgroud)
请注意,我包含了名称McCartney,BasinandRange使事情变得更加现实和困难.但是,如果我能找到一个单行代码来处理95%的名字,并使用上述names陈述来处理类似的并发症McCartney,BasinandRange那将是很好的. …
我已经readShapePoly在maptools包中读取了shapefile ,但无法读取同一个文件readOGR.我希望有人可以帮助我阅读shapefile readOGR.
我orcounty.shp从这里下载了文件:http://geography.uoregon.edu/geogr/topics/maps.htm
我也下载了相关文件:orcounty.shx,orcounty.sbx,orcounty.sbn,和orcounty.dbf,并把所有五个文件的文件夹中:c:/users/mark w miller/gis_in_R/shapefile_example/
以下代码读取shapefile并显示一些属性:
library(maptools)
setwd('c:/users/mark w miller/gis_in_R/shapefile_example/')
# Oregon county census data (polygons)
orcounty.poly <- readShapePoly('orcounty.shp', proj4string=CRS("+proj=longlat"))
orcounty.line <- readShapeLines('orcounty.shp', proj4string=CRS("+proj=longlat"))
# see projection
summary(orcounty.poly)
Object of class SpatialPolygonsDataFrame
Coordinates:
min max
x -124.55840 -116.46944
y 41.98779 46.23626
Is projected: FALSE
proj4string : [+proj=longlat]
Data attributes:
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试使用以下代码读取相同的shapefile时,我收到一个错误:
library(rgdal)
# read shapefile
oregon.map <- readOGR(dsn="c:/users/mark …Run Code Online (Sandbox Code Playgroud)