您使用 Attach() 或按名称或切片调用变量吗?

2024-06-25

许多介绍 R 的书籍和指南都是从附加一个 R 语言的实践开始的。data.frame这样您就可以通过名称调用变量。我一直发现用以下方式调用变量是有利的$符号或方括号切片[,2]。这样我就可以使用多个data.frames 而不混淆它们和/或使用迭代来连续调用感兴趣的列。我注意到 Google 最近发布了R 的编码指南 http://google-styleguide.googlecode.com/svn/trunk/google-r-style.html其中包括该行

1)attach:避免使用它

人们对这种做法有何感想?


我从不使用附加。with and within是你的朋友。

示例代码:

> N <- 3
> df <- data.frame(x1=rnorm(N),x2=runif(N))
> df$y <- with(df,{
   x1+x2
 })
> df
          x1         x2          y
1 -0.8943125 0.24298534 -0.6513271
2 -0.9384312 0.01460008 -0.9238312
3 -0.7159518 0.34618060 -0.3697712
> 
> df <- within(df,{
   x1.sq <- x1^2
   x2.sq <- x2^2
   y <- x1.sq+x2.sq
   x1 <- x2 <- NULL
 })
> df
          y        x2.sq     x1.sq
1 0.8588367 0.0590418774 0.7997948
2 0.8808663 0.0002131623 0.8806532
3 0.6324280 0.1198410071 0.5125870

编辑:哈德利在评论中提到了转换。这是一些代码:

 > transform(df, xtot=x1.sq+x2.sq, y=NULL)
       x2.sq       x1.sq       xtot
1 0.41557079 0.021393571 0.43696436
2 0.57716487 0.266325959 0.84349083
3 0.04935442 0.004226069 0.05358049
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

您使用 Attach() 或按名称或切片调用变量吗? 的相关文章

  • R 中的微秒时间戳

    在 CSV 文件中 我有几列 其中一列有时间戳 其中每个时间戳是今天午夜经过的微秒 每个 csv 文件仅包含一天内的数据 因此这并不含糊 我的问题是 如何将这些微秒时间戳解析为 R 多谢 我的 CSV 文件的一部分 34201881666
  • 用于检查和批量线性模型的数据表选项

    我想知道是否有data table用于从数据集中批量处理线性模型并首先进行检查的选项 我需要对每个唯一标识符运行一堆线性模型 但首先我需要进行检查 对于每个唯一的 id 和年份 我需要检查是否有至少 24 个月的先前每月数据 但不超过 60
  • R ggplot2:可以自定义时间尺度的连续性吗?

    是否有可能有一个日期时间尺度而不将周末视为时间连续体的一部分 例如 如果我用线条几何图形绘制 2 周内的股票价格 我不想在周末绘制 2 天的平坦期 我希望周五与周一联系 我想有更好的方法 但是您始终可以只使用绘图的索引 然后将日期指定为标签
  • 使用 ggplot2 进行分面 qqplots

    假设我有以下数据 datapoints1 data frame categ c rep 1 n rep 2 n vals1 c rt n 1 2 rnorm n 3 4 datapoints2 data frame categ c rep
  • 更改分配新变量的默认环境

    我经常想在全局环境下的一个环境中创建很多变量 这可以通过以下方式轻松完成envir论证sys source 如果由正在获取的文件创建的所有变量都应该进入单个环境 但我通常使用创建变量集的文件 一组应该进入一个环境 另一组应该进入另一个环境
  • 反射的性能:JVM 中的高质量字节码

    Edit 2 是否有一个完全的程序object oriented实施能带来高性能吗 大部分的framework是用它的全部力量写的 然而 reflection也被大量用于实现它 例如AOP and dependency injection
  • R data.table 使用列作为参数将函数应用于行

    我有以下内容data table x structure list f1 1 3 f2 3 5 Names c f1 f2 row names c NA 3L class c data table data frame 我想对每一行应用一个
  • 在 dplyr tbl_df 中获取删除列的最佳实践

    我记得 2001 年 r help 上的一条评论说drop TRUE in data frame是 R 历史上最糟糕的设计决策 dplyr纠正这一点并且不会隐式删除 当尝试将旧代码转换为dplyr风格 这会引入一些讨厌的错误d 1 or d
  • 如何使用 caret 包解释模型输出的准确性

    我正在使用 caret 包来训练模型 并希望获得模型的准确性 我听说的一种常见方法是使用confusionMatrix 然而 当我运行下面的代码时 经过训练的模型给出了一些与confuseMatrix 报告的精度值略有不同的精度值 所以我的
  • 使用 cmd 和 R 配置 databricks

    我正在尝试使用 databricks cli 并调用 databricks 配置 这就是我从 cmd 执行此操作的方法 somepath gt databricks configure token Databricks Host shoul
  • 如何在闪亮的应用程序中初始化渲染项目的默认值

    介绍 In a shinyApp 我想用动态输入渲染输出 我的问题是 使用shinydashboard使用不同的选项卡 默认值来自 Input 仅当激活相应选项卡时才会呈现 想想输入和输出选项卡 当使用时我得到同样的行为switch声明in
  • R 数据框中的重复行

    我正在尝试使用下面的代码复制数据框中的行 但是 我发现它很慢 duprow df 1 for i in 1 2000 print i df rbind df duprow 有更快的方法吗 您可以使用rep 例如对于数据框第 1 行的 5 个
  • 从数据/系数创建 lm 对象

    有谁知道可以在给定数据集和系数的情况下创建 lm 对象的函数 我对此很感兴趣 因为我开始使用贝叶斯模型平均 BMA 并且我希望能够根据 bicreg 的结果创建 lm 对象 我想访问所有不错的通用 lm 函数 例如诊断绘图 预测 cv lm
  • 如何在R中绘制堆积柱形图?

    有谁知道如何使用 R 绘制由超过 1 个变量堆叠的列的直方图 就像excel中的 堆积柱形图 一样 谢谢你 我假设您确实想要一个条形图而不是直方图 在这种情况下 barplot从标准图形或barchart格子包中的两者都可以做到 或者使用
  • R 矩阵到犰狳的转换非常慢

    观察 对于中等大小的矩阵 将矩阵从 R 传递到 C 的开销要慢得多arma mat类型比NumericMatrix类型 大约需要 250 倍的时间 这是一个最小的例子 include
  • 在子目录中构建共享库

    我正在尝试构建一个使用一些 C 代码的 R 包 我有一个编译为可执行文件的 C 库 可以从命令行调用 有一个与之关联的 Makefile 我正在尝试获取信息here http cran r project org doc manuals R
  • 在 R 中,将一列值与所有其他列进行比较

    我对 R 非常陌生 我有一个问题对于这里的专家来说可能非常简单 假设我有一个表 sales 其中包含 4 个客户 ID 123 126 和 4 个产品 A B C D ID A B C D 123 0 1 1 0 124 1 1 0 0 1
  • 合并结果的行数多于一个数据框

    我有两个数据框 第一个包含 9994 行 第二个包含 60431 行 我想合并两个数据框 以便合并后的数据框包含两个数据框的组合列 但只包含 9994 行 但是 合并后我得到了超过 9994 行 我怎样才能确保这种情况不会发生 df1 re
  • R 中带有自定义字段类的参考类?

    我想在另一个引用类中使用自定义引用类 但此代码失败 nameClass lt setRefClass nameClass fields list first character last character methods list ini
  • 使用 R 中的剪切函数对缺失值进行 NA 级别[重复]

    这个问题在这里已经有答案了 R 中的 cut 函数省略了 NA 但我想要一个缺失值的级别 这是我的 MWE set seed 12345 Y lt c rnorm n 50 mean 500 sd 1 NA Y1 lt cut log Y

随机推荐