小编Mar*_*ler的帖子

从ggplot2中删除网格,背景颜色以及顶部和右侧边框

我想通过使用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)

r ggplot2

92
推荐指数
5
解决办法
17万
查看次数

将字符数据拆分为数字和字母

我有一个字符数据向量.矢量中的大多数元素由一个或多个字母后跟一个或多个数字组成.我希望将向量中的每个元素分成字符部分和数字部分.我在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.

r

22
推荐指数
5
解决办法
3万
查看次数

堆积条形图的位置图例

我正在尝试创建一个堆积条形图,但我无法定位图例,以便它不会与任何条形图重叠.我试过调整边距,设置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)

plot r bar-chart

20
推荐指数
3
解决办法
5万
查看次数

在for循环中打印同一行上的多个变量的值

我有一个肯定看起来非常微不足道的问题,但答案一直提到我:如何在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)

r

19
推荐指数
1
解决办法
9万
查看次数

单个tapply或聚合语句中的多个函数

是否可以在单个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)

aggregate r tapply

14
推荐指数
4
解决办法
1万
查看次数

安装numpy for Windows 10:导入多阵列numpy扩展模块失败

我是新手,Python并且尝试安装失败numpy.当前问题是部分错误消息读取Importing the multiarray numpy extension module failed.我无法在互联网上找到此错误消息,我正在寻求帮助.完整的错误消息位于此帖的底部.

首先,我认为我应该提供系统和版本的详细信息并描述我所做的事情.我Windows 10在64位计算机上运行,并Python 2.7.13https://www.python.org/downloads/windows/安装

我也安装了Anaconda,也Python 2.7和一个64位的机器,从这里下载https://www.continuum.io/downloads. AnacondaPython 2.7.12,而不是Python 2.7.13.当我import numpyAnacondaGUI 内部输入时,IPython不会出现错误或警告.尽管如此,我numpy从内部Python 2.7.13使用的印象IDLE (Python GUI)可能在计算上更快. Python 2.7.13首先出现在我的Path语句中.

numpy-1.12.0rc2+mkl-cp27-cp27m-win_amd64.whlhttp://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)

python arrays numpy python-import python-2.7

14
推荐指数
3
解决办法
2万
查看次数

使用tapply按组分组多个列

我想按组分列各个列,我的第一个想法是使用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)

r tapply

13
推荐指数
2
解决办法
3万
查看次数

R:创建加拿大某些省份和美国各州的地图

我正在尝试创建一个选定的加拿大省/地区和选定的美国州的地图.到目前为止,最好的地图似乎是使用GADM数据生成的地图:http://www.gadm.org/

但是,我无法在同一张地图上绘制美国和加拿大的情节,也无法在选定的省/地区和州绘制地图.例如,我对阿拉斯加,育空,西北地区,不列颠哥伦比亚省,阿尔伯塔省和蒙大拿州等地感兴趣.

此外,美国地图似乎沿着国际日期线分开.

有人可以帮我:

  1. 在一张地图上绘制上述省/地区和州
  2. 避免让美国在国际日期线上分开
  3. 覆盖纬度 - 经度网格
  4. 选择一个特定的投影,也许是polyconic.

也许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)

gis r

12
推荐指数
1
解决办法
1万
查看次数

更改列名称的字母大小写

我有大量的数据集,每个数据集都包含一长列列名.在某些文件中,列名称都是大写字母,在某些文件中,只有列名的第一个字母大写.我需要附加数据集,并认为在数据集之间匹配列名的最简单方法是将全资本名称转换为只有首字母大写的名称.

我希望找到一个通用的解决方案,甚至可能是一个单行.

这是我的示例数据集.所需的名称包含在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那将是很好的. …

r

12
推荐指数
7
解决办法
4万
查看次数

使用readOGR和readShapePoly读取形状文件

我已经readShapePolymaptools包中读取了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)

r shapefile rgdal

12
推荐指数
1
解决办法
2万
查看次数