通过下面的可重现数据,
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
谢谢!
随着下面的栅格,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值的连续区域,并且想知道是否还有其他选择可以“填补”缺失数据的空白。
我有这些示例数据
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) 我的数据如下所示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) 如果我有这个清单
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) 下面的可重复数据包含每个季节(夏季和冬季)每只动物(猫和狗)对两个协变量(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) 我如何对下面的数据框进行子集化,以便仅显示列的列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) 我正在尝试绘制随时间变化的值并出现错误:
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) 我试图从一个因素的每个水平上随机抽取一个样本。每个因子水平都有不同数量的观察结果。对于每个级别,我想创建一个样本,其观察值要少一半。
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)
提前致谢。
在使用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)