【问题标题】:R: Best way to replicate an object of same size and type as other?R:复制与其他对象相同大小和类型的对象的最佳方法是什么?
【发布时间】:2017-01-12 05:28:19
【问题描述】:

假设您有一些 R 对象,例如 data.frame 和 Quanteda DFM 稀疏矩阵。您想要复制相同大小的对象,但不需要复制内容。

是否有一些 R 命令可以在不复制内容的情况下复制任何对象?如果是,它们是否适用于稀疏对象和非稀疏对象?

【问题讨论】:

    标签: r variables initialization sparse-matrix variable-declaration


    【解决方案1】:

    这将创建填充NA的相同数据结构

    data("iris")
    iris.mt <- iris[0, ]
    iris.mt[nrow(iris), ] <- NA
    
    str(iris.mt)
    'data.frame':   150 obs. of  5 variables:
     $ Sepal.Length: num  NA NA NA NA NA NA NA NA NA NA ...
     $ Sepal.Width : num  NA NA NA NA NA NA NA NA NA NA ...
     $ Petal.Length: num  NA NA NA NA NA NA NA NA NA NA ...
     $ Petal.Width : num  NA NA NA NA NA NA NA NA NA NA ...
     $ Species     : Factor w/ 3 levels "setosa","versicolor",..: NA NA NA NA NA NA NA NA NA NA ...
    

    【讨论】:

    • iris.mt[] &lt;- NA 会这样做 - 无需选择列或行。
    • 你也可以使用replace在一行中运行相同的代码iris.mt &lt;- replace(iris,,NA)
    • @latemail 使用iris.mt[] &lt;- NA 会删除需要维护的因素。尽管按照您的建议使用replace 更快。
    • 这会失败,例如 dgCMatrix 对象 here
    • @thelatemail 不适用于dgCMatrix 对象here
    猜你喜欢
    • 2014-01-01
    • 2013-03-30
    • 1970-01-01
    • 1970-01-01
    • 2023-03-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多