小编Bry*_*son的帖子

R复制矩阵数次,然后按行绑定在一起

我有以下矩阵

FI1  FI2 YI1 YI2 BAL1 BAL2 GRO1 GRO2  EQ1  EQ2
1 0.22 0.15 0.1 0.1 0.05 0.05 0.05 0.05 0.05 0.05
2 0.22 0.00 0.0 0.0 0.00 0.00 0.00 0.00 0.00 0.00
3 0.22 0.00 0.0 0.0 0.00 0.00 0.00 0.00 0.00 0.00
4 0.22 0.00 0.0 0.0 0.00 0.00 0.00 0.00 0.00 0.00
5 0.22 0.00 0.0 0.0 0.00 0.00 0.00 0.00 0.00 0.00
6 0.22 0.00 0.0 0.0 0.00 0.00 0.00 0.00 0.00 0.00
Run Code Online (Sandbox Code Playgroud)

现在我希望将这个矩阵重复10次并放入一个矩阵,使它看起来像这样(我只在这里显示2次)

FI1  FI2 …
Run Code Online (Sandbox Code Playgroud)

data-binding r matrix rbind

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

减去两列以在R中提供新列

你好我试图B从矩阵中的列A中减去列dat来创建一个C列(A- B):

我的意见:

A  B
1  2
2  2
3  2
4  2
Run Code Online (Sandbox Code Playgroud)

我的预期产量:

A  B  C
1  2 -1
2  2  0
3  2  1
4  2  2
Run Code Online (Sandbox Code Playgroud)

我试过了:dat$C <- (dat$A - dat$B)但是我得到了:## $ operator is invalid for atomic vectors错误

干杯.

syntax r

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

食物网中的营养位置/高度(遵循网络中的路径)

作为开发我正在研究的软件包演示的一部分,我需要量化一个经典的生态食品网,如下所述.我已经检查了素食主义者,二分法和sna,但没有看到任何能满足我需要的东西,尽管我可能错了 - 那些都是大包装.因此,我想知道这个想法是否已经在包中,或者是否有人有一个聪明的方法来计算结果.好像它应该是一个包.

食物网可以通过物种A:F之间的相互作用矩阵来描述,如代码和图中所示.换句话说,人们可以说"A吃B吃E"等(很难在矩阵中看到,图中是微不足道的).

species <- LETTERS[1:6]

links <- c(0, 1, 0, 0, 0, 0,
    1, 0, 1, 1, 1, 0,
    0, 1, 0, 0, 1, 0,
    0, 1, 0, 0, 1, 1,
    0, 1, 1, 1, 0, 0,
    0, 0, 0, 1, 0, 0)

L <- matrix(links, nrow = 6, byrow = TRUE,
    dimnames = list(species, species))
Run Code Online (Sandbox Code Playgroud)

我想计算每个物种的营养位置和营养高度.营养位置定义为特定物种+ 1下食物链中物种的总数.在图中,A的营养位置为6,D为3,另一方面,营养高度为平均值.物种在其参与的每个独立链中的位置.物种B连接到4个不同的链(路径); 它的高度是在时间上考虑的位置的平均值:(3 + 3 + 3 + 2)/ 4 = 2.75.

在计算上,需要读取矩阵L,然后通过矩阵隐含的不同路径来计算所需的值.

如果这不是太迟钝,有没有人知道这样做的包,或者看到一种方法来跟踪路径并计算各种长度/选项?它"感觉"必须有一些应该有效的递归/应用方法,但我不想重新发明东西.

提前致谢

一个简单的食物网

r social-networking

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

S3类名:什么是允许的?

S3类的名称是否有任何限制?例如,名称中是否允许使用空格?我看到数据帧有一类"data.frame"而不是"数据帧".如果没有正式的限制,是否存在名称中有空格的问题?我只是没有碰到基本模式以外的任何东西,所以我相信那些有更多经验的人会知道.

r class

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

在包检查 R 2.14.0 期间使用带有小插图的 inst/extdata

我有一个包,其中包含一个 csv 文件,我将其放入每个 R-exts 的 inst/extdata 中。小插图需要此文件。如果我直接编织小插图,一切正常。但是,当我运行 R --vanilla CMD check 时,检查过程找不到该文件。我知道它在检查过程中已移入 .Rcheck 目录,这可能是问题的一部分。但我不知道如何设置它,所以直接 Sweave 和小插图构建/检查都有效。

小插图包含这样一行:

EC1 <- dot2HPD(file = "../inst/extdata/E_coli/ecoli.dot",
node.inst = "../inst/extdata/E_coli/NodeInst.csv",
Run Code Online (Sandbox Code Playgroud)

函数 dot2HPD 通过以下方式访问文件:

    ni <- read.csv(node.inst)
Run Code Online (Sandbox Code Playgroud)

这是错误消息:

    > tab <- read.csv("../inst/extdata/E_coli/NodeInst.csv")
Warning in file(file, "rt") :
  cannot open file '../inst/extdata/E_coli/NodeInst.csv': No such file or directory

  When sourcing ‘HiveR.R’:
Error: cannot open the connection
Execution halted
Run Code Online (Sandbox Code Playgroud)

顺便说一句,这与此问题有关,但该信息似乎已过时并且并未完全涵盖该领域。

我在 Mac 上。

packages r package r-package

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

foreach和dopar返回NULL而不是所需的答案

以下函数根据需要并行执行,但返回NULL而不是预期的矩阵.我究竟做错了什么?

doTheMath_MC <- function(st, end, nd) {
    if (st > end) stop("end must be larger than st")
    print(getDoParWorkers())

    # Helper function from stackoverflow.com/a/23158178/633251
    tr <- function(x, prec = 0) trunc(x * 10^prec) / 10^prec

    # Helper function to use with foreach
    fef <- function(i, j, num, trpi) {
        if (num[j] >= num[i]) return(NULL)
        val <- num[i]/num[j]
        if (!tr(val, nd) == trpi) return(NULL)
        return(c(i, j, tr(val, nd)))
        }

    # Here we go...     
    nd <- nd - 1
    trpi <- …
Run Code Online (Sandbox Code Playgroud)

foreach r

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

项目中所有IBOutlet,IBAction连接的摘要?

是否有工具或技巧来显示Xcode项目中对象之间的所有连接?我正在考虑某种图形显示,或不太理想的表格.当然,这对于故障排除或研究示例代码非常有用.我尝试在这里搜索(SO),但这些术语出现在许多问题中,并且连接具有另一种含义.谢谢.

xcode objective-c interface-builder ios

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

ggplot2 0.9.3中美学的继承和annotation_custom的行为

继续最近的一个问题,这个问题有点不同,并使用更简单的例子更充分地说明问题.以下是两个数据集和三个函数.第一个按预期绘制一些点和圆圈:

library("ggplot2")
library("grid")

td1 <- data.frame(x = rnorm(10), y = rnorm(10))

tf1 <- function(df) { # works as expected
    p <- ggplot(aes(x = x, y = y), data = df)
    p <- p + geom_point(color = "red")
    p <- p + annotation_custom(circleGrob())
    print(p)
}

tf1(td1)
Run Code Online (Sandbox Code Playgroud)

下一个似乎要求确切的样本图,但代码略有不同.它不会给出错误但不会绘制圆圈:

tf2 <- function(df) { # circle isn't draw, but no error either
    p <- ggplot()
    p <- p + geom_point(data = df, aes(x = x, y = y), color = "red")        
    p …
Run Code Online (Sandbox Code Playgroud)

r ggplot2

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

这个语法技巧的名称是什么?它在哪里记录?

以前没碰过这个.从pairs.panels包中的帮助页面psych,可以找到以下内容:

data(iris)
pairs.panels(iris[1:4],bg=c("red","yellow","blue")[iris$Species],pch=21)
Run Code Online (Sandbox Code Playgroud)

我想问一下这个参数,它设置了为数据点绘制的圆的背景颜色:bg=c("red","yellow","blue")[iris$Species]显然,这个参数将3个级别(iris$Species一个因子)与给定的3个颜色相关联.我不是在询问它的作用.

我想知道这种关联传递的数据与动态数据级别的关联方式是什么,以及它在哪里被记录?这似乎有些R神奇.如果我正在编写此函数,我可能会分别传递因子的颜色和列名,然后在幕后手动进行关联.这个技巧可能非常有用.但从表面[iris$Species]上看,数据看起来就像索引本身一样.[iris$Species]例如,您无法输入控制台,只会出错.您可以输入c("red","yellow","blue")[iris$Species]并获得正确的答案.似乎可能会有一些回收,但我不确定.我很好奇这里记录的内容,如果有人能用一两句话来解释发生了什么.例如,[iris$Species]正在转换为整数,然后用于索引3种颜色的列表?我在想这就是它,但我想要另一种意见.

注:同样的伎俩是使用在graphics::pairs其上panels.pairs的基础上的.

syntax r

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

自动布局中约束“点”的单位是什么?

我正在尝试更新要使用的应用程序autolayout,我想知道使用哪些单位来指定约束。它们被称为点。但是它们是像素吗?这似乎会破坏的预期效用autolayout。点是否以一致的方式映射到像素?可以在任何地方设置单位吗?使用百分比可能对我很有帮助。我无法在任何地方找到正式定义。

更新:我找到了部分信息,并将其作为答案。这实际上让我更加困惑:如果您将两个按钮的分隔约束设为10点,则iPhone和iPad的屏幕上的分隔是不同的(由于10/768小于10/320,因此它们在iPad上显示得更近)。有没有使用Interface Builder解决此问题的方法(即避免对约束进行编码?)。

xcode autolayout

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