这可能很简单,但我找不到解决方案:
df <- data.frame(replicate(10,sample(0:1,10,rep=TRUE)))
v <- c(3, 7)
Run Code Online (Sandbox Code Playgroud)
有没有一种优雅的方法将这个数据帧拆分为v中指定的行号的三个元素(列表中)?
我试图在地图上的特定坐标上绘制玫瑰图/圆形直方图,类似于在地图上绘制饼图,就像在包中一样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) 说我有向量 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)
谢谢
我有数据帧的可变长度列表.我想使用指定的列名称或索引将每个列表中的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) 我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) 我正在尝试用这些断点处的指定断点和标签制作等高线图.我尝试添加使用无论是在休息的标签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
有什么建议?