我有以下类型的数据:
mydata <- data.frame (yvar = rnorm(200, 15, 5), xv1 = rep(1:5, each = 40),
xv2 = rep(1:10, 20))
table(mydata$xv1, mydata$xv2)
1 2 3 4 5 6 7 8 9 10
1 4 4 4 4 4 4 4 4 4 4
2 4 4 4 4 4 4 4 4 4 4
3 4 4 4 4 4 4 4 4 4 4
4 4 4 4 4 4 4 4 4 4 4
5 4 4 4 4 …Run Code Online (Sandbox Code Playgroud) 如何将字符向量传递给dplyr::count().
library(magrittr)
variables <- c("cyl", "vs")
mtcars %>%
dplyr::count_(variables)
Run Code Online (Sandbox Code Playgroud)
这很好用,但是dplyr v0.8会抛出警告:
count_() 已弃用。请使用 count() 代替
“编程”小插图或 tidyeval 书可以帮助您使用 count() 进行编程: https: //tidyeval.tidyverse.org
我没有dplyr::count()在https://tidyeval.tidyverse.org/dplyr.html或tidyeval书当前版本的其他章节和用 dplyr 编程中看到引用名称的标准评估示例。
阅读本文档和另一个问题后,我的两个最佳猜测是
mtcars %>%
dplyr::count(!!variables)
mtcars %>%
dplyr::count(!!rlang::sym(variables))
Run Code Online (Sandbox Code Playgroud)
抛出这两个错误:
错误:列的
<chr>长度必须为 32(行数)或 1,而不是 2错误:只有字符串可以转换为符号
我有一个带整数值的df.出于分类的目的,我想将这个df替换为具有预定间隔而不是整数的更简单的df.我该如何有效地做到这一点?一个例子如下:
DF:
1 2 3
1 5 3 0
2 1 10 12
3 3 0 10
Run Code Online (Sandbox Code Playgroud)
转换为:
1 2 3
1 [3-5] [3-5] [0-2]
2 [0-2] [10-12][10-12]
3 [3-5] [0-2] [10-12]
Run Code Online (Sandbox Code Playgroud) 我制作了一系列图,并且各个图的值范围不同,因此各个图之间的比例也不同。我试图保持比例一致(从0到130000),所以我设置midpoint=6500,但似乎它不起作用。
for (i in 2016:2018){
for (m in 1:12){
yourfilename=paste(i,m,".jpg",sep="")
jpeg(file=yourfilename, width =800, height = 700)
product_by_month<- data_all%>%
filter(year==i & month==m)
product_2010_map<-c_map%>%
left_join(product_by_month,by=c("name"="city"))
pp<-ggplot(data=product_2010_map,aes(fill=amt)) +
theme(panel.background=element_blank(),
plot.title=element_text(hjust=0.5),
axis.ticks=element_blank(),
axis.text=element_blank())+
geom_sf()+
scale_color_gradient2(low = "green", high = "blue",
midpoint=6500)
print(pp)
dev.off()
}
}
Run Code Online (Sandbox Code Playgroud)