精华内容
下载资源
问答
  • R语言 c()函数 官方 说明文档

    万次阅读 2019-07-18 16:19:50
    需要注意的是,cbind() 和rbind() 是考虑dim 特性的连接函数,而函数c() 则不考虑这些数值对象的dim 和dimnames 属性。这一点在有些时候非常有用。将一个数组强制转换成简单向量的标准方法是用函数as.vector()。 ...

    需要注意的是,cbind() 和rbind() 是考虑dim 特性的连接函数,而函数c() 则不考虑这些数值对象的dim 和dimnames 属性。这一点在有些时候非常有用。将一个数组强制转换成简单向量的标准方法是用函数as.vector()。

    vec <- as.vector(X)
    一个相似效果的办法是采用单参数的c()函数,就像下面:
    vec <- c(X)
    这两种方法有少许不同,到底采用那种方式关键是看对结果向量的格式要求(建议使用前者)。

    c(base)
    c()所属R语言包:base
    Combine Values into a Vector or List
    结合成一个向量或列表值
    译者:生物统计家园网 机器人LoveR
    描述----------Description----------
    This is a generic function which combines its arguments.
    这是一个通用的功能,结合其参数。
    The default method combines its arguments to form a vector. All arguments are coerced to a common type which is the type of the returned value, and all attributes except names are removed.
    默认的方法,结合它的参数,以形成一个向量。所有的参数被强制到一个共同的类型是返回值的类型,除名称外,所有属性将被删除。
    用法----------Usage----------
    c(…, recursive=FALSE)
    参数----------Arguments----------
    参数:…
    objects to be concatenated.
    要连接的对象。
    参数:recursive
    logical. If recursive = TRUE, the function recursively descends through lists (and pairlists) combining all their elements into a vector.
    逻辑。如果recursive = TRUE,函数的递归下降通过结合成一个向量元素(和pairlists)的名单。
    Details
    详情----------Details----------
    The output type is determined from the highest type of the components in the hierarchy NULL < raw < logical < integer < real < complex < character < list < expression. Pairlists are treated as lists, but non-vector components (such names and calls) are treated as one-element lists which cannot be unlisted even if recursive = TRUE.
    输出类型决定从最高的组件层次结构中的NULL类型<原料<逻辑<整数<真正复杂的<字符<列表<表达。的pairlists名单,但被视为非向量组件(如姓名,电话)作为一个元素列表,而不能是未上市,甚至如果recursive = TRUE治疗。
    c is sometimes used for its side effect of removing attributes except names, for example to turn an array into a vector. as.vector is a more intuitive way to do this, but also drops names. Note too that methods other than the default are not required to do this (and they will almost certainly preserve a class attribute).
    c有时其副作用,除了名称删除属性,例如变成一个向量数组。 as.vector是一个更直观的方式做到这一点,但也下降名称。太注意默认以外的方法,并不需要做到这一点(和他们几乎肯定会维持一个类的属性)。
    This is a primitive function.
    这是一种原始的功能。
    值----------Value----------
    NULL or an expression or a vector of an appropriate mode. (With no arguments the value is NULL.)
    NULL或适当的方式表达或向量。 (不带参数的值是NULL。)
    S4方法----------S4 methods----------
    This function is S4 generic, but with argument list (x, …, recursive = FALSE).
    此功能是S4通用的,但参数列表(x, …, recursive = FALSE)。
    参考文献----------References----------
    The New S Language. Wadsworth & Brooks/Cole.
    参见----------See Also----------
    unlist and as.vector to produce attribute-free vectors.
    unlist和as.vector属性的向量。
    举例----------Examples----------
    c(1,7:9)
    c(1:5, 10.5, “next”)

    uses with a single argument to drop attributes[#使用一个参数,删除属性]

    x <- 1:4
    names(x) <- letters[1:4]
    x
    c(x) # has names[有名字]
    as.vector(x) # no names[没有名字]
    dim(x) <- c(2,2)
    x
    c(x)
    as.vector(x)

    append to a list:[#附加到一个列表:]

    ll <- list(A = 1, c=“C”)

    do not use[#使用]

    c(ll, d = 1:3) # which is == c(ll, as.list(c(d=1:3))[这是== C(LL,as.list(C(D = 1:3))]

    but rather[#而是]

    c(ll, d = list(1:3))# c() combining two lists[C()相结合的两个列表]
    c(list(A=c(B=1)), recursive=TRUE)
    c(options(), recursive=TRUE)
    c(list(A=c(B=1,C=2), B=c(E=7)), recursive=TRUE)
    转载请注明:出自 生物统计家园网(http://www.biostatistic.net)。

    http://www.biostatistic.net/thread-2396-1-1.html

    展开全文
  • R语言 SMOTE函数报错 ...Error in matrix(if (is.null(value)) logical() else value, nrow = nr, dimnames = list(rn, : length of ‘dimnames’ [2] not equal to array extent 原因不明,解决方案...

    R语言 SMOTE函数报错

    在运行DMwR包的SMOTE函数用于增大正样本的语句时,出现报错:
    Error in matrix(if (is.null(value)) logical() else value, nrow = nr, dimnames = list(rn, : length of ‘dimnames’ [2] not equal to array extent

    原因不明,解决方案如下,将语句里的data 先转化为matrix,再转化为dataframe.

    此段文字来自https://blog.csdn.net/c1z2w3456789/article/details/80664872
    SMOTE(form, data, perc.over = 200, k = 5, perc.under = 200, learner = NULL, …)
    参数解释:
    form:描述预测问题的公式
    data:原始的不平衡的数据集
    A data frame containing the original (unbalanced) data set
    k:用于产生新的少数派样本的最近邻数量(与kNN中的k类似)
    learner:可选参数,指定一个分类算法的函数名称(类型为字符串),这个函数将对结果进行分类
    perc.over:指定从少数样本中采样的比例。
    perc.under:对多数样本下采样,有多少比例的样本被选入新的数据集中

    具体例子

    原始数据,dataframe格式,3个自变量,1个分类因变量
    原始数据,dataframe格式

    // 原始语句
    train_bla <- SMOTE(是否录用 ~ ., train, perc.over = 3600,perc.under=100)
    //报错信息
    Error in matrix(if (is.null(value)) logical() else value, nrow = nr, dimnames = list(rn,  : 
      length of 'dimnames' [2] not equal to array extent
    //修改后语句
    train2 <- as.matrix(train)
    train_resampled <- SMOTE(是否录用 ~ ., as.data.frame(train2), perc.over = 3600,perc.under=100)
    

    写完发表发现CSDN推送了相同文章,那也保存下来吧,独立解决问题值得记得

    展开全文
  • R中关于name的函数

    万次阅读 2016-03-18 14:49:09
    dimnames,names,rowname,colname,row.names 这五个函数,初学的时候往往分不清楚他们的区别和各自该用在什么情况下才比较合适。 我做了简单的总结,希望能帮助大家,每个函数的细节我也参照帮助文档做了笔记,...
    R中关于给行列赋名称的函数有
    dimnames,names,rowname,colname,row.names
    这五个函数,初学的时候往往分不清楚他们的区别和各自该用在什么情况下才比较合适。
    我做了简单的总结,希望能帮助大家,每个函数的细节我也参照帮助文档做了笔记,但太长就不宜贴到博文了。

    建议是如数据框和列表,是在创建对象的时候就直接命名

    我们平常使用的时候,最好统一一下用法,免得混乱。


    展开全文
  • 原标题:R语言向量化运算:apply函数族用法心得作者:鲁伟,热爱数据,坚信数据技术和代码改变世界。R语言和Python的忠实拥趸,为成为一名未来的数据科学家而奋斗终生。个人公众号:数据科学家养成记 (微信ID:...

    原标题:R语言向量化运算:apply函数族用法心得

    作者:鲁伟,热爱数据,坚信数据技术和代码改变世界。R语言和Python的忠实拥趸,为成为一名未来的数据科学家而奋斗终生。个人公众号:数据科学家养成记 (微信ID:louwill12)

    当初入坑R语言的时候,就在各种场合看到老司机的忠告,“尽量避免使用循环!”一开始并不明白这其中的奥义,直到后来对R语言有深入接触后,才领会R语言在向量化运算方面的强大功能。本篇内容就总结小编在使用R语言向量化运算apply函数族的一些心得体会。

    至于R写循环为什么执行效率低下,小编也从技术论坛上得到了一些解释。说是像for和while之类的循环语句是基于R本身来实现的,而apply函数族的向量化运算是基于C语言函数来实现的,所以二者的计算效率有很大差距。小编不是计算机出身,也不懂C,既然大神们这么说了就知道是这么回事就好啦。

    所谓apply函数族,指的是以apply函数为核心,包括lapply, sapply, tapply, mapply, rapply, vapply, eapply等在内八个函数。先上个表格具体理解下每个函数的含义:

    函数名

    含义

    apply

    apply

    lapply

    list apply

    sapply

    simplify list apply

    tapply

    table apply

    mapply

    mutiple list apply

    rapply

    recursively apply

    vapply

    vector apply

    eapply

    environment apply

    再上个图看一下apply函数族各函数之间的关系:

    (图片来自张丹老师博客http://blog.fens.me/r-apply/)

    0fc5835e2f0b678863e9937dad6cf04b.png

    apply函数

    作为该函数族最原始最核心的函数,apply函数一直担任着向量化运算的艰巨任务。apply函数可以对矩阵和数组以及数据框按照指定的函数在不同维度上进行循环运算,其用法如下:

    apply(X,margin,FUN,...)

    X:矩阵,数组,数据框

    margin:对象维度,表示按行还是按列,1表示行2表示列

    FUN:对X执行运算的函数

    具体用法可看实例:

    x

    dimnames(x)[[1]]

    (x1

    x1 x2

    3 3

    (col.sums

    x1 x2

    24 24

    (row.sums

    a b c d e f g h

    7 6 5 4 5 6 7 8

    rbind(cbind(x, Rtot = row.sums),

    Ctot = c(col.sums, sum(col.sums)))

    x1 x2 Rtot

    a 3 4 7

    b 3 3 6

    c 3 2 5

    d 3 1 4

    e 3 2 5

    f 3 3 6

    g 3 4 7

    h 3 5 8

    Ctot 24 24 48

    tapply函数

    tapply函数应用于分组循环计算,其功能类似于dplyr包中的group by函数。其用法如下:

    tapply(X,INDEX,FUN,...,simplify=TRUE)

    X:向量

    INDEX:用于分组的索引

    FUN:应用于X的函数

    . . .:接收多个数据

    simplify:返回值是否数组化

    用法实例:对iris数据集中按花种类计算花瓣宽度的均值

    attach(iris)

    tapply(Petal.Width,Species,mean)

    setosa versicolor virginica

    0.246 1.326 2.026

    lapply和sapply函数

    这两个函数放一起讲,那当然是它们实在太相似了。lapply函数顾名思义,list apply,除了其对象参数是一个list或者data.frame之外,其返回值也是一个list。而sapply函数作为一个简化版的lapply,其返回值形式可以不是list。二者用法如下:

    lapply(X,FUN,...)

    sapply(X,FUN,...,simplify=TRUE,USE.NAMES=TRUE)

    X:矩阵,数组,数据框

    FUN:作用在对象上的函数

    . . .:其他参数(可选)

    simplify:是否数组化

    USE.NAMES:若X为一个字符串,TRUE表示设置字符串为数据名

    用法实例:

    e

    lapply(e, fivenum)

    $alpha

    [1] 3 4 5 6 7

    $beta

    [1] 7.389056 37.341843 148.413159 750.030976 2980.957987

    $gamma

    [1] 0.0 0.0 0.5 1.0 1.0

    #simplify参数为FALSE时,sapply与lapply效果一样

    sapply(e, fivenum,simplify=FALSE)

    $alpha

    [1] 3 4 5 6 7

    $beta

    [1] 7.389056 37.341843 148.413159 750.030976 2980.957987

    $gamma

    [1] 0.0 0.0 0.5 1.0 1.0

    #simplify参数为TRUE时,sapply函数返回值数组化

    sapply(e, fivenum,simplify=TRUE)

    alpha beta gamma

    [1,] 3 7.389056 0.0

    [2,] 4 37.341843 0.0

    [3,] 5 148.413159 0.5

    [4,] 6 750.030976 1.0

    [5,] 7 2980.957987 1.0

    vapply函数

    vapply函数与sapply函数也较为类似,不同的是它可以通过FUN.VALUE参数对返回值行名进行预定义。其用法如下:

    vapply(X,FUN,FUN.VALUE,...,USE.NAMES=TRUE)

    FUN.VALUE:通用型向量,以控制返回值的行名

    用法实例:

    g

    vapply(g,cumsum,FUN.VALUE=c('a'=0,'b'=0,'c'=0,'d'=0))

    x1 x2

    a 3 2

    b 6 3

    c 9 7

    d 12 12

    rapply函数

    rapply函数可以理解为一个递归版本的lapply,同样只处理list类型的数据,对list中的每个元素进行递归遍历,如果list元素还包括子元素也需要继续遍历。其用法如下:

    rapply(X, FUN,classes = ANY,deflt=NULL,how=c(unlist, replace, list),...)

    X:list对象

    FUN:作用在对象上的函数

    classes:关于类名的字符向量,若为any则表示为任意类型

    deflt:默认结果,若how参数选择了replace则不能使用

    how:字符串匹配的三种结果

    . . .:更多参数

    rapply用法实例:

    X

    rapply(X, sqrt, classes = "numeric", how = "replace")

    [[1]]

    [[1]]$a

    [1] 1.772454

    [[1]]$b

    [[1]]$b$c

    [1] 1

    $d

    [1] "a test"

    mapply函数

    mapply函数也是sapply函数的近亲,从函数名来看就知道mapply函数可以接受多个数据对象。其使用格式较前面几个有略微区别:

    mapply(FUN,...,MoreArgs = NULL,SIMPLIFY = TRUE,USE.NAMES=TRUE)

    FUN:作用对象函数

    . . .:多个数据对象

    MoreArgs:参数列表

    SIMPLIFY:返回值是否数组化

    USE.NAMES:控制返回值行名

    mapply用法实例:

    x

    y

    z

    mapply(max,x,y,z)

    [1] 5 2 3 4 5 6 7 8 2 3

    eapply函数

    eapply函数可以遍历计算R当前环境空间中的每个变量。其用法如下:

    eapply(env,FUN,...,all.names=FALSE,USE.NAMES=TRUE)

    env:定义的R环境空间

    FUN:作用在对象上的函数

    . . .:更多参数,可选

    all.names:逻辑值,指示是否对所有值使用函数

    USE.NAMES:控制返回值行名

    epplay函数用法实例:

    #定义一个环境空间

    env

    #向这个环境空间中存入3个变量

    env$a

    env$beta

    env$logic

    env

    #查看env空间中的变量

    ls(env)

    [1] "a" "beta" "logic"

    ls.str(env)

    a : int [1:11] 5 6 7 8 9 10 11 12 13 14 ...

    beta : num [1:6] 20.1 54.6 148.4 403.4 1096.6 ...

    logic : logi [1:4] TRUE FALSE FALSE TRUE

    #对环境空间内所有对象遍历计算均值

    eapply(env, mean)

    $logic

    [1] 0.5

    $beta

    [1] 784.0195

    $a

    [1] 10

    总结

    apply函数族作为R语言向量化运算的精髓,可以完全代替运算效率低下的循环,在平常练习中加强数据化思维的训练,对于apply函数族的8个函数较常用的是apply、lapply函数和sapply函数,其余函数虽不常用但也需要了解一二。返回搜狐,查看更多

    责任编辑:

    展开全文
  • 前言Apply系列函数作为R语言中用于替换for和while循环的利器,在批量循环计算的过程中发挥着非常重要的作用,其他的R包如dplyr,plyr和data.table的很多数据操作思路和apply系列函数有很多的借鉴和相似之处,最经典...
  • 创建矩阵的函数为matrix(data=x,nrow=y,ncol=z,byrow=FALSE,dimnames=NULL) data参数为矩阵元素; nrow参数:矩阵的行数; ncol参数:矩阵的列数; byrow参数:矩阵元素是否按行填充,默认值为FALSE; dimnames参数...
  • 生成矩阵或向量 t:矩阵转置cbind:把列合并为矩阵rbind:把行合并为矩阵diag:矩阵对角元素向量或生成对角矩阵aperm:数组转置nrow, ncol:计算数组的行数和列数dim:对象的维向量dimnames:对象的维名row/colnames...
  • R语言常用函数

    千次阅读 2014-09-15 22:08:02
    R语言常用函数 基本 一、数据管理 vector:向量 numeric:数值型向量 logical:逻辑型向量character;字符型向量 list:列表 data.frame:数据框c:连接为向量或列表 length:求长度 subset:求子集seq,from...
  • #R_函数#R中如何看函数源代码

    千次阅读 2012-12-14 10:29:22
    作为一个开源软件,R的一个非常大的优点就是我们可以随意查看所有算法的源代码,在对这些源代码进行分析的...最直接的方法当然是直接键入函数,大部分函数源代码就可以直接显现出来 > fivenum function (x, na.rm =
  • 【R语言】apply函数

    万次阅读 2015-12-25 16:00:34
    R语言apply系列函数的基本作用是对数组(array,可以是多维)或者列表(list)按照元素或元素构成的子集合进行迭代,并将当前元素或子集合作为参数调用某个指定函数。vector是一维的array,dataframe可以看作特殊的...
  • 在R语言中,数组使用array()函数创建。array()函数的语法格式如下所示: array( data = NA, dim = length(data), dimnames = NULL) data为创建数组的元素; dim为数组的维数,是数值型向量; dimnames是各维度
  • R语言函数索引

    千次阅读 2017-03-24 10:29:43
    R语言函数索引  在学习R语言的途中,发现函数太多实在不好记。所以,本文记录下学习期间遇到的函数,做一个备忘,索引,方便查看函数的大致用途!学到什麽就更新什麽! str() 紧凑的显示R对象的内部结构生成...
  • R语言中的常用函数

    千次阅读 2017-03-22 13:24:42
    语言的数学运算和一些简单的函数整理如下: 向量可以进行那些常规的算术运算,不同长度的向量可以相加,这种情况下最短的向量将被循环使用。   改变编译环境的语言(英语) Sys.setenv(LANGUAGE="en") ...
  • R语言常用函数整理

    千次阅读 2020-10-21 08:45:43
    R语言基础函数整理 R语言常用函数整理本篇是基础篇,即R语言自带的函数。 一、数据管理 vector:向量 numeric:数值型向量 logical:逻辑型向量 character;字符型向量 list:列表 data.frame:数据框 c:连接为...
  • R语言矩阵matrix函数

    千次阅读 2017-08-05 19:59:00
    矩阵是元素布置成二维矩形布局的R对象。...使用 matrix()函数创建一个矩阵。 语法 R语言中创建矩阵的基本语法是: matrix(data, nrow, ncol, byrow, dimnames) 以下是所使用的参数的说明: data...
  • dimnames,names,rowname,colname,row.names 这五个函数,初学的时候往往分不清楚他们的区别和各自该用在什么情况下才比较合适。 我做了简单的总结,希望能帮助大家,每个函数的细节我也参照帮助文档做了笔记,...
  • )') cat("Using Cox survival estimates at ", dimnames(ssum)[[1]][2], " ", unit, "s\n", sep="") #获取每个层的2nd time(即u时刻)的平均生存率S #注意:此处不是基线风险函数h0 surv.by.strata [2, , 1] #2nd ...
  • R语言 变量的操作函数

    千次阅读 2016-07-28 16:29:31
    R语言 变量的操作函数1.变量变换 as.array(x),as.data.frame(x),as.numeric(x),as.logical(x),as.complex(x),as.character(x),…转换变量类型;使用如下命令可得到全部列表,methods(as) factor():将一个向量...
  • R语言提供了批量处理函数,可以循环遍历某个集合内的所有或部分元素,以简化操作。 这些函数底层是通过C来实现的,所以效率也比手工遍历来的高效。 批量处理函数有很重要的apply族函数:lapply sapply apply ...
  • R函数全纪录

    千次阅读 2015-10-26 21:46:58
    函数全纪录 base包: names(): 这个函数可以返回一个向量,显示的是用做参数的类型里所有可以用"$"访问的变量名。 length(x): 返回x的长度 tail(c/dataframe,n): 取向量/数据框最后几行 ...
  • 数组是可以在两个以上...使用array()函数创建数组。 它使用向量作为输入,并使用dim参数中的值创建数组。例以下示例创建一个由两个3x3矩阵组成的数组,每个矩阵具有3行和3列。# Create two vectors of different le...
  • which函数--R语言

    2021-04-16 16:14:09
    1.函数功能 Give the TRUE indices of a logical object, allowing for array indices. 2. 函数语法 which(x, arr.ind = FALSE, useNames = TRUE) 3. 函数参数 3.1 X x a logical vector or array. NAs are ...
  • R语言函数

    2014-08-14 17:09:46
    这一节分类列出常用的函数,需要时可以参看帮助。 基本 一、数据管理 vector:向量 numeric:数值型向量 logical:逻辑型向量 character;字符型向量 list:列表 data.frame:数据框 c:连接为向量或列表 length...
  • 常见函数备忘录

    2019-09-24 22:47:06
    length():一个向量的长度 sort():对一个向量的元素进行排序 rev():对一个向量的元素按倒序重新排列 order():以向量形式返回按增序或降序排列后的各元素在初始...dimnames():行和列的名称 rownames(),col...
  • R 语言常用函数整理

    2016-10-26 15:28:48
    数组转置 nrow, ncol:计算数组的行数和列数dim:对象的维向量 dimnames:对象的维名row/colnames:行名或列名 %*%:矩阵乘法crossprod:矩阵交叉乘积(内积) outer:数组外积kronecker:数组的Kronecker积 ...
  • R语言基本操作函数

    万次阅读 2015-12-28 13:32:21
    4.2.3.三角函数与其他基本数学函数  sin,  cos,  tan,  asin,  atan,  atan2,  log,  log10,  exp, max(x):  当x为一向量时,返回x中最大的元素。  当x为矩阵时,...
  • 矩阵matrix函数 矩阵是元素布置成二维矩形布局的R对象。 它们包含相同原子类型的元素。尽管我们可以创建只包含字符或只逻辑值的矩阵,但是它们没有多大用处。我们使用的是在数学计算中含有数字元素矩阵。 matrix...
  • 原文链接:XGBoost(二):R语言实现微信公众号:机器学习养成记 之前在XGBoost(一):与同类算法的差异对比一文中介绍...一、XGBoost包我们可以直接调用R语言的xgboost包中的xgboost()函数实现该算法,xgboost包已...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,213
精华内容 485
关键字:

dimnames函数