apply

    85热度

    6回答

    假设我有一个n乘2的矩阵和一个将2-矢量作为其参数之一的函数。我想将这个函数应用到矩阵的每一行并得到一个n向量。如何在R中做到这一点? 例如,我想计算三点二维标准正态分布的密度: bivariate.density(x = c(0, 0), mu = c(0, 0), sigma = c(1, 1), rho = 0){ exp(-1/(2*(1-rho^2))*(x[1]^2/sigm

    1热度

    3回答

    我无法在线找到此问题的解决方案,就像看起来那么简单。 这里,它是: #Construct test dataframe tf <- data.frame(1:3,4:6,c("A","A","A")) #Try the apply function I'm trying to use test <- apply(tf,2,function(x) if(is.numeric(x)) mean

    6热度

    2回答

    假设我想获得关于数据集mtcars(基本R版本2.12.1的一部分)的一些汇总统计信息。 下面,我根据他们拥有的发动机汽缸数量对汽车进行分组,并且采用mtcars中其余变量的每组平均值。 > str(mtcars) 'data.frame': 32 obs. of 11 variables: $ mpg : num 21 21 22.8 21.4 18.7 18.1 14.3 24.4 22.

    3热度

    3回答

    我有一个相当简单的问题,但不幸的是只是不能得出结果: 我想将GBSVolatility函数应用于我的data.frame的每一行。 我做了以下内容: > vol <- function(x) GBSVolatility(x$Price, "c", S = 1000, x$Strike, Time = 1/4, r = 0.01, b = 0.02, maxiter = 500) > foo$i

    -1热度

    1回答

    适用于数据框工作的一行,但应用于多行失败的特定行 下面是一个示例(行954单独工作) : apply(dx[954,], 1, query.db) 2571 1092 0.06044147 3890 0.05948577 3273 0.05911261 794 0.05855583 4241 0.05854064 3560 0.05602690 但是,当它与一个或多

    8热度

    5回答

    这是关于R中编码的问题。 我提供的示例是教学法。假设我有一个名为'func1'和'func2'的函数,每个函数都有两个参数(比如标量)。我想指定另一个函数'applyfunction',它有三个参数:要使用的函数的最后一个数字('1'或'2')和函数的两个参数。例如,我想要做这样的事情(这当然不工作): applyfunction(1,2,3)哪里会有效地运行func1(2,3)和 applyfu

    5热度

    3回答

    我希望深入了解为何发生这种情况,以及我如何更有说服力地做到这一点。 当我使用sapply时,我希望它返回一个3x2矩阵,但它返回一个2x3矩阵。为什么是这样?为什么将它附加到另一个数据框很困难? a <- data.frame(id=c('a','b','c'), var1 = c(1,2,3), var2 = c(3,2,1)) out <- sapply(a$id, function(x)

    7热度

    2回答

    假设我们有一个用作lapply函数输入对象的列表(mylist)。有没有办法知道mylist中的哪个元素正在被评估?该方法应该适用于lapply和snowfall::sfApply(以及可能的其他申请家庭成员)。 在chat上,Gavin Simpson建议采用以下方法。这对于lapply非常适用,但对于sfApply不适用。我想避免额外的软件包或在列表中摆弄。有什么建议么? mylist <-

    8热度

    4回答

    我想要做的是令人尴尬的简单 - 但我失败了。 我有一个data.frame与“字符”和“数字”。 data.frame的其中一列代表权重。 我想乘以数据框的每个单元格与相应的权重(如果它是一个数字)。 我该怎么做(最好不使用嵌套循环)。 预先感谢您! 例子: c1 c2 w l1 abc 2 1 l2 dxf 3 0.5 l3 ghi 4 1.5 应该成为 c1 c2 w l1 abc

    23热度

    4回答

    我经常需要对数据框/矩阵中的每对列应用函数,并将结果以矩阵形式返回。现在我总是写一个循环来做到这一点。例如,为了使含我写相关的p值的矩阵: df <- data.frame(x=rnorm(100),y=rnorm(100),z=rnorm(100)) n <- ncol(df) foo <- matrix(0,n,n) for (i in 1:n) { for (j in