小编B. *_*vis的帖子

计算每个组中某个数字(因子)出现的次数

通过下面的可重现数据,

dat <- data.frame(Bin = rep(1:4, each = 50), 
                  Number = sample(5, 200, replace = T, prob = c(1,1,1,2,3))) 

> head(dat)
  Bin Number
1   1      3
2   1      5
3   1      4
4   1      5
5   1      5
6   1      1
Run Code Online (Sandbox Code Playgroud)

Number我想计算每个在每个中出现的次数Bin,最好使用不同的方式表示,每个级别的每个出现了dplyr. 多少次?NumberBin

谢谢!

r dplyr

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

使用邻域分析填充栅格中NA值的间隙(例如,不是单个像元)

随着下面的栅格,NA值数量增加

library(raster)
filename <- system.file("external/test.grd", package="raster")
r <- raster(filename)
r[r<300] <- NA
summary(getValues(r))
Run Code Online (Sandbox Code Playgroud)

是否可以仅“填充” NA细胞?我一直在使用此有用的帖子,但如下所示,NA值保留在最终产品中。

fill.na <- function(x, i=5) {
  if( is.na(x)[i] ) {
    return( round(mean(x, na.rm=TRUE),0) )
  } else {
    return( round(x[i],0) )
  }
}  

r2 <- focal(r, w = matrix(1,3,3), fun = fill.na, 
            pad = TRUE, na.rm = FALSE )
summary(getValues(r2))
Run Code Online (Sandbox Code Playgroud)

我怀疑问题在于具有NA值的连续区域,并且想知道是否还有其他选择可以“填补”缺失数据的空白。

gis r raster r-raster

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

返回具有多个条件的向量中的最高值

我有这些示例数据

Data <- structure(list(IndID = structure(c(1L, 1L, 2L, 2L, 3L, 3L, 4L, 
4L, 5L, 5L, 6L, 6L, 7L, 7L, 8L, 8L, 9L, 9L, 10L, 10L), .Label = c("1", 
"2", "3", "4", "5", "56", "58", "59", "60", "63"), class = "factor"), 
    Species = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
    1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L), .Label = c("BHS", 
    "MTG"), class = "factor"), Season = structure(c(1L, 2L, 1L, 
    2L, 2L, 1L, 1L, 2L, 2L, …
Run Code Online (Sandbox Code Playgroud)

r summary dplyr

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

将数据框列表转换为单个数据框并更改列名称

我的数据如下所示dput.

dat <- structure(list(`60` = structure(c(25.2142857142857, 25.2142857142857, 
25.2142857142857, 16.8333333333333, 6.18181818181818, 6.45454545454545, 
39.3076923076923, 17.8, 30.2307692307692, 31.9090909090909, 338.872342659885, 
338.872342659885, 338.872342659885, 312.566239187662, 108.98770426029, 
132.000329498368, 295.499325777881, 289.05210119046, 279.319320138619, 
282.696361655751), .Dim = c(10L, 2L), .Dimnames = list(NULL, 
    c("CanCov", "Aspect"))), `100` = structure(c(22.2285714285714, 
21.8285714285714, 22.2285714285714, 17.4285714285714, 7.54054054054054, 
5.51351351351351, 32.8823529411765, 18.0285714285714, 31.3125, 
32.5833333333333, 328.300126247896, 336.611388179775, 328.300126247896, 
288.830157290819, 132.674633942446, 122.597267778504, 295.162359106757, 
254.508961455896, 280.326744650874, 287.386617538886), .Dim = c(10L, 
2L), .Dimnames = list(NULL, c("CanCov", "Aspect"))), `500` = structure(c(10.786941580756, 
10.7688787185355, 10.8489702517162, 10.7628278221209, 14.1569301260023, 
12.9438717067583, 12.8735632183908, 10.8551724137931, 20.729667812142, 
23.3722794959908, 195.270942450807, …
Run Code Online (Sandbox Code Playgroud)

r list dplyr

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

计算列表中列的平均值和sd

如果我有这个清单

set.seed(123)
thelist <- list(a=data.frame(x1=rnorm(10), x2=rnorm(10)),
                b=data.frame(x1=rnorm(10), x2=rnorm(10)),
                c=data.frame(x1=rnorm(10), x2=rnorm(10)))

> thelist
$a
            x1         x2
1  -0.56047565  1.2240818
2  -0.23017749  0.3598138
3   1.55870831  0.4007715
4   0.07050839  0.1106827
5   0.12928774 -0.5558411
6   1.71506499  1.7869131
7   0.46091621  0.4978505
8  -1.26506123 -1.9666172
9  -0.68685285  0.7013559
10 -0.44566197 -0.4727914

$b
           x1          x2
1  -1.0678237  0.42646422
2  -0.2179749 -0.29507148
3  -1.0260044  0.89512566
4  -0.7288912  0.87813349
5  -0.6250393  0.82158108
6  -1.6866933  0.68864025
7   0.8377870  0.55391765
8   0.1533731 -0.06191171
9  -1.1381369 -0.30596266
10  1.2538149 -0.38047100

$c
            x1 …
Run Code Online (Sandbox Code Playgroud)

r list apply

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

使用“jitterdodge”时对齐ggplot中的点和误差线

下面的可重复数据包含每个季节(夏季和冬季)每只动物(猫和狗)对两个协变量(cov1 和 cov2)的 50 个观察值及其各自的误差估计 (SE)。

library(ggplot2); library(dplyr); library(tidyr)
set.seed(123)
dat <- data.frame(Season = rep(c("Summer", "Winter"), each = 100),
                  Species = rep(c("Dog", "Cat", "Dog", "Cat"), each = 50),
                  cov1 = sample(1:100, 200, replace = TRUE),
                  cov1SE = rnorm(200),
                  cov2 = sample(1:100, 200, replace = TRUE),
                  cov2SE = rnorm(200))

head(dat)
  Season Species cov1      cov1SE cov2      cov2SE
1 Summer     Dog   29 -0.71040656   24 -0.07355602
2 Summer     Dog   79  0.25688371   69 -1.16865142
3 Summer     Dog   41 -0.24669188   23 -0.63474826
4 Summer     Dog   89 …
Run Code Online (Sandbox Code Playgroud)

r ggplot2 ggproto

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

子集数据框基于多行中的重复值

我如何对下面的数据框进行子集化,以便仅显示列的列AAA:CCC都具有相同的值并保留IndID字段?

Dat <- data.frame(IndID = LETTERS[seq(1,10)],
                  AAA = c(1,5,3,2,3,1,5,4,6,2),
                  BBB = c(1,8,5,2,5,4,8,4,4,5),
                  CCC = c(1,5,3,2,3,5,5,4,6,5))

> Dat
   IndID AAA BBB CCC
1      A   1   1   1
2      B   5   8   5
3      C   3   5   3
4      D   2   2   2
5      E   3   5   3
6      F   1   4   5
7      G   5   8   5
8      H   4   4   4
9      I   6   4   6
10     J   2   5   5
Run Code Online (Sandbox Code Playgroud)

我想返回以下结果.

Result <- data.frame(IndID = …
Run Code Online (Sandbox Code Playgroud)

r dplyr

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

在POSIXct时间上绘制时,使用ggplot设置x轴的最小值和最大值

我正在尝试绘制随时间变化的值并出现错误:

Error: Invalid input: date_trans works with objects of class Date only
Run Code Online (Sandbox Code Playgroud)

我在这篇文章以及这里的文章中解决了早期的问题。我想设置x轴的最小值和最大值,以删除没有数据的图的最末端的空白。

该代码称为绘图,但没有校正的x轴。

ggplot(dta, aes(x= WeekStarting, y = AvgWeekEle, group = IndID))+
        geom_line(size = 1)+ 
        theme(axis.text.x=element_text(angle=30, hjust=1))
Run Code Online (Sandbox Code Playgroud)

我尝试使用scale_x_date下面的代码来设置x轴的限制-这会产生错误。

ggplot(dta, aes(x= WeekStarting, y = AvgWeekEle, group = IndID))+
        geom_line(size = 1)+ 
        theme(axis.text.x=element_text(angle=30, hjust=1))+
        scale_x_date(breaks = "1 week", labels=date_format("%b-%d-%Y"), 
            limits = as.Date(c("2014-01-6","2014-02-15")))
Run Code Online (Sandbox Code Playgroud)

一个dput()我的数据如下。我正在使用最新版本的R,并且正在运行Windows 7。

提前致谢。

dta <- structure(list(IndID = c("BHS_011_A", "BHS_011_A", "BHS_011_A", 
"BHS_011_A", "BHS_011_A", "BHS_011_A", "BHS_011_A", "BHS_011_A", 
"BHS_015_A", "BHS_015_A", "BHS_015_A", "BHS_015_A", "BHS_015_A", 
"BHS_015_A", …
Run Code Online (Sandbox Code Playgroud)

plot r ggplot2

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

使用dplyr为因子的每个级别采样不同数量的随机行

我试图从一个因素的每个水平上随机抽取一个样本。每个因子水平都有不同数量的观察结果。对于每个级别,我想创建一个样本,其观察值要少一半。

library(dplyr)
dat <- data.frame(ID = rep(c("AAA", "AAA","AAA","BBB","BBB","CCC"), length = 100),
                  Value = sample(1:100, replace = T))
Run Code Online (Sandbox Code Playgroud)

使用上面的数据,似乎类似以下内容的东西几乎可以正常工作,但是错误(n()中的Error:不应直接调用此函数)表明我不正确地使用了n()函数。

Samp <- dat %>% group_by(ID) %>% sample_n(size = n()/2 )
Run Code Online (Sandbox Code Playgroud)

提前致谢。

r dplyr

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

将ggplot ellips限制为现实/可能的值

在使用ggplot绘制椭圆时,是否可以将椭圆约束为实际可能的值?

例如,以下可重现的代码和数据绘制了两种物种的Ele vs. Var.Var是一个正变量,不能为负数.尽管如此,负值仍包含在结果椭圆中.是否可以在x轴上将椭圆限制为0(使用ggplot)?

更具体地说,我想象的是一个扁平边缘,椭圆体在x轴上截断为0.

library(ggplot2)
set.seed(123)
df <- data.frame(Species = rep(c("BHS", "MTG"), each = 100),
                 Ele = c(sample(1500:3000, 100), sample(2500:3500, 100)),
                 Var = abs(rnorm(200)))

ggplot(df, aes(Var, Ele, color = Species)) +
  geom_point() +
  stat_ellipse(aes(fill = Species), geom="polygon",level=0.95,alpha=0.2) 
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

r ggplot2 ggproto

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

标签 统计

r ×10

dplyr ×5

ggplot2 ×3

ggproto ×2

list ×2

apply ×1

gis ×1

plot ×1

r-raster ×1

raster ×1

summary ×1