小编Luk*_*kas的帖子

在R中按行号拆分数据帧

这可能很简单,但我找不到解决方案:

df <- data.frame(replicate(10,sample(0:1,10,rep=TRUE)))

v <- c(3, 7)
Run Code Online (Sandbox Code Playgroud)

有没有一种优雅的方法将这个数据帧拆分为v中指定的行号的三个元素(列表中)?

split r

7
推荐指数
2
解决办法
5194
查看次数

R:在地图上绘制圆形直方图/玫瑰图

我试图在地图上的特定坐标上绘制玫瑰图/圆形直方图,类似于在地图上绘制饼图,就像在包中一样mapplots.

下面是一个生成的示例mapplots(参见下面的代码),我想用玫瑰图替换饼图

示例情节

该软件包circular可以让我绘制玫瑰图,但我无法将其与mapplots软件包集成.有关替代包或代码的任何建议吗?

回答代码制作地图的问题.这一切都基于mapplots包.我为地图下载了一个shapefile(我想来自http://www.freegisdata.org/)

library(mapplots)
library(shapefiles)

xlim = c(-180, 180)
ylim = c(-90, 90)

#load shapefile
wmap = read.shapefile ("xxx")

# define x,y,z for pies
x <- c(-100, 100)
y <- c(50, -50)
z1 <- c(0.25, 0.25, 0.5)
z2 <- c(0.5, 0.2, 0.3)
z <- rbind(z1,z2)
# define radii of the pies
r <- c(5, 10)

# it's easier to have all data in a single df

plot(NA, …
Run Code Online (Sandbox Code Playgroud)

plot r rose-diagram

5
推荐指数
1
解决办法
2212
查看次数

在 R 中查找公差范围内的值的索引

说我有向量 x

x <- c(1, 1, 1.1, 2, 1, 2.1, 2.6)
tol <- 0.4
Run Code Online (Sandbox Code Playgroud)

我如何获得容差范围 ( tol)内“唯一”元素组的索引,如下表所示。我事先不知道有多少这样的团体。

[[1]]
[1] 1 2 3 5

[[2]]
[1] 4 6

[[3]]
[1] 7
Run Code Online (Sandbox Code Playgroud)

谢谢

r

5
推荐指数
1
解决办法
623
查看次数

通过不同的ID合并数据帧列表

我有数据帧的可变长度列表.我想使用指定的列名称或索引将每个列表中的dfs合并为单个df,该列名称或索引因df而异.这是一个有3个dfs的例子

my.list <- list(
data.frame(a = 1:10, b = letters[1:10], c = 101:110),
data.frame(d = 6:15, e = letters[1:10], f = 1:10),
data.frame(l = 2:11, m = letters[11:20], o = 1:10))
Run Code Online (Sandbox Code Playgroud)

我想通过ID中提到的每个df的特定列进行合并

ids <- c('a', 'f', 'l')
Run Code Online (Sandbox Code Playgroud)

得到一些看起来像的东西

id  b   c   d   e   m   o
1   a   101 6   a   NA  NA
2   b   102 7   b   k   1
3   c   103 8   c   l   2
4   d   104 9   d   m   3
5   e   105 10  e   n   4 …
Run Code Online (Sandbox Code Playgroud)

merge r

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

使用mapply保存时保留list元素的名称

mapply()用来将列表中的元素保存在单独的文件中.例如

file.names <- c('~/a.RData', '~/b.RData')
data.list <- list(foo = c(1:10), bar = rep(1, 10))

mapply(function(x, y) save(x, file = y), data.list, file.names)
Run Code Online (Sandbox Code Playgroud)

并且我希望能够在再次加载后以原始名称调用元素.现在我明白了

load('~/a.RData')
ls()
"x"
Run Code Online (Sandbox Code Playgroud)

但是我想得到

load('~/a.RData')
ls()
"foo"
Run Code Online (Sandbox Code Playgroud)

r lapply mapply

3
推荐指数
1
解决办法
145
查看次数

将自定义标签添加到ggplot geom_contour

我正在尝试用这些断点处的指定断点和标签制作等高线图.我尝试添加使用无论是在休息的标签direct.label或者geom_dl,但没有成功.

dat <- melt(volcano)
brks <- c(100, 120, 140, 160)
g <- ggplot(dat, aes(x = Var1, y = Var2, z = value)) +
  geom_contour(colour = 'black', breaks = brks)
g
Run Code Online (Sandbox Code Playgroud)

该部分工作正常,但当我尝试添加标签时:

direct.label(g, list("bottom.pieces", colour='black'))
Run Code Online (Sandbox Code Playgroud)

我收到错误: Need colour or fill aesthetic to infer default direct labels.

而且,当我尝试:

g + geom_dl(aes(label = brks),  method = 'bottom.pieces')
Run Code Online (Sandbox Code Playgroud)

我明白了: Error: Aesthetics must be either length 1 or the same as the data (5307): label, x, y, z

有什么建议?

r ggplot2

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

标签 统计

r ×6

ggplot2 ×1

lapply ×1

mapply ×1

merge ×1

plot ×1

rose-diagram ×1

split ×1