小编maj*_*maj的帖子

将参数传递给dplyr函数

我想使用下面的计算参数化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使用非标准评估而引发错误.应该如何编写这个函数?

r lazy-evaluation dplyr

50
推荐指数
5
解决办法
3万
查看次数

什么是...级别..意思是ggplot :: stat_density2d

我在构建将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 ggplot2

13
推荐指数
2
解决办法
2万
查看次数

R ggmap:为什么我可以使用filename属性创建矩形地图,但不能在绘图中使用它们?

我想在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.

world.png输出

我真的很高兴能找到一个解决办法,因为ggmap"无法显示任何高于80°纬度的东西"问题,因此创建整个世界的地图或多或少是不可能的.

然而,在R本身中,即在图中,地图看起来并不像它应该的那样: 失败的R地图

这仅在地图为矩形(当相应地size设置属性时)而非正方形(默认情况下)时发生.

为什么?这个问题将来有可能得到解决吗?从这里到最合适的世界地图最快的方式是什么?

maps google-maps r ggplot2 ggmap

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

循环绘制R中的图形并将其保存为jpeg

我正在尝试按循环绘制图。

输入数据:具有相同结尾* 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的初学者。

plot for-loop r

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

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)

任何人都可以提供正确的功能吗?

r plyr

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

如何在计算平均值时摆脱NA?

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)

r

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

Grails测试:如果后跟.validate(),则新实例解析为null

我有这个域类Ward.它有这个约束name,我想测试(medi_absWard是位于):

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)

testing validation grails constraints nullpointerexception

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