我想使用下面的计算参数化dplyr,找出哪些值Sepal.Length与多个值相关联Sepal.Width:
library(dplyr)
iris %>%
group_by(Sepal.Length) %>%
summarise(n.uniq=n_distinct(Sepal.Width)) %>%
filter(n.uniq > 1)
Run Code Online (Sandbox Code Playgroud)
通常我会写这样的东西:
not.uniq.per.group <- function(data, group.var, uniq.var) {
iris %>%
group_by(group.var) %>%
summarise(n.uniq=n_distinct(uniq.var)) %>%
filter(n.uniq > 1)
}
Run Code Online (Sandbox Code Playgroud)
但是,这种方法会因为dplyr使用非标准评估而引发错误.应该如何编写这个函数?
我在构建将fill变量设置为的热图时看到了一些例子..level...
比如在这个例子中:
library(MASS)
ggplot(geyser, aes(x = duration, y = waiting)) +
geom_point() +
geom_density2d() +
stat_density2d(aes(fill = ..level..), geom = "polygon")
Run Code Online (Sandbox Code Playgroud)
我怀疑是否..level..意味着fill设置为相对的层数?还有人可以给我一个很好的例子来解释这些2D密度图,每个轮廓代表什么等等?我在网上搜索过但找不到合适的指南.
我想在R中创建一个世界地图.我有点熟悉ggmap,所以我尝试过这样的事情:
ggmap(get_googlemap(center=c(83,25),
zoom=1, scale=4, filename="world", size=c(640,300)))
Run Code Online (Sandbox Code Playgroud)
就这一点而言,它确实工作正常world.png.
我真的很高兴能找到一个解决办法,因为ggmap"无法显示任何高于80°纬度的东西"问题,因此创建整个世界的地图或多或少是不可能的.
然而,在R本身中,即在图中,地图看起来并不像它应该的那样:

这仅在地图为矩形(当相应地size设置属性时)而非正方形(默认情况下)时发生.
为什么?这个问题将来有可能得到解决吗?从这里到最合适的世界地图最快的方式是什么?
我正在尝试按循环绘制图。
输入数据:具有相同结尾* depth.txt的表,表中有2个制表符分隔的列:
Baba"\t"58.38
Tata"\t"68.38
Mama"\t"30.80
jaja"\t"88.65
Run Code Online (Sandbox Code Playgroud)
输出:我想plot()为每个文件的每个* depth.txt(它们的名称与表的名称相同)获取一个jpeg文件(x轴为表的第一列,y轴为第二列)柱)
我创建了脚本的一部分,但是它不起作用:
files <- list.files(path="/home/fil/Desktop/", pattern="*depth.txt", full.names=T,recursive=FALSE)
for (i in 1:length(files))
plot(read.table(files[i],header=F,sep="\t")$V1,read.table(files[i],header=F,sep="\t")$V2)
dev.copy(jpeg,filename=files[i])
dev.off
Run Code Online (Sandbox Code Playgroud)
它不起作用,能帮我吗?我是R的初学者。
我想创建一个新变量"Count",它是一个因子"Period"的唯一值的计数,通过对变量"ID"进行分组.以下数据包含一个列,其中包含我想要的"Count"值:
structure(list(ID = structure(c(1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L
), .Label = c("a", "b"), class = "factor"), Period = c(1.1, 1.1,
1.2, 1.3, 1.2, 1.3, 1.5, 1.5), Count = c(1L, 1L, 2L, 3L, 1L,
2L, 3L, 3L)), .Names = c("ID", "Period", "Count"), class = "data.frame", row.names = c(NA,
-8L))
Run Code Online (Sandbox Code Playgroud)
我尝试使用mutate Count = 1:length(Period)但它创建了"Period"的每个值的累积计数,而我想要只有唯一值的累积计数.这是我试过的:
library(plyr)
samp1<-ddply(samp, .(ID, Period), mutate, Count = 1:length(Period))
Run Code Online (Sandbox Code Playgroud)
任何人都可以提供正确的功能吗?
b=c(1,4,3,NA)
c=c(NA,4,3,8)
res=(b+c)/2
NA 4 3 NA
Run Code Online (Sandbox Code Playgroud)
你可以看到每当我们得到NA返回的结果时NA.我想计算b and c两者之间的平均值,如果两者都有值,但是如果两者b or c都有NA,则只返回值b or c.期望的结果将是:
res
1 4 3 8
Run Code Online (Sandbox Code Playgroud) 我有这个域类Ward.它有这个约束name,我想测试(medi_abs包Ward是位于):
package medi_abs
class Ward {
String name
static constraints = {
name blank:false
}
}
Run Code Online (Sandbox Code Playgroud)
目前,WardTests.groovy如下所示:
package medi_abs
@TestFor(Ward)
@Mock(Ward)
class WardTests {
void testInstance() {
def wardx = new Ward(name: 'OP')
assertEquals 'OP', wardx.name
}
void testConstraints() {
mockForConstraintsTests(Ward)
def wardx = new Ward(name: 'OP')
assertTrue wardx.validate()
}
}
Run Code Online (Sandbox Code Playgroud)
当我运行该test-app Ward命令时,testInstance不会失败,但testConstraints将会失败,然后是以下错误消息:
groovy.lang.MissingPropertyException: No such property: validate for class: medi_abs.WardTests at medi_abs.WardTests.testConstraints
Run Code Online (Sandbox Code Playgroud)
[编辑:现在我得到的错误信息就是这个,不知道为什么会改变:]
java.lang.NullPointerException
at grails.test.MockUtils$_addValidateMethod_closure87.doCall(MockUtils.groovy:1022)
at grails.test.MockUtils$_addValidateMethod_closure88.doCall(MockUtils.groovy:1065)
at …Run Code Online (Sandbox Code Playgroud) r ×6
ggplot2 ×2
constraints ×1
dplyr ×1
for-loop ×1
ggmap ×1
google-maps ×1
grails ×1
maps ×1
plot ×1
plyr ×1
testing ×1
validation ×1