如何根据列名称对数据框进行子集化?

2023-11-30

我有这个数据框:

 dput(df)
structure(list(Server = structure(c(1L, 1L, 1L, 1L, 1L, 1L), .Label = "servera", class = "factor"), 
    Date = structure(1:6, .Label = c("7/13/2017 15:01", "7/13/2017 15:02", 
    "7/13/2017 15:03", "7/13/2017 15:04", "7/13/2017 15:05", 
    "7/13/2017 15:06"), class = "factor"), Host_CPU = c(1.812950134, 
    2.288070679, 1.563278198, 1.925239563, 5.350669861, 2.612503052
    ), UsedMemPercent = c(38.19, 38.19, 38.19, 38.19, 38.19, 
    38.22), jvm1 = c(10.91, 11.13, 11.34, 11.56, 11.77, 11.99
    ), jvm2 = c(11.47, 11.7, 11.91, 12.13, 12.35, 12.57), jvm3 = c(75.65, 
    76.88, 56.93, 58.99, 65.29, 67.97), jvm4 = c(39.43, 40.86, 
    42.27, 43.71, 45.09, 45.33), jvm5 = c(27.42, 29.63, 31.02, 
    32.37, 33.72, 37.71)), .Names = c("Server", "Date", "Host_CPU", 
"UsedMemPercent", "jvm1", "jvm2", "jvm3", "jvm4", "jvm5"), class = "data.frame", row.names = c(NA, 
-6L))

我只希望能够根据此变量中的向量名称对该数据框进行子集化:

select<-c("jvm3", "jvm4", "jvm5")

所以,我的最终 df 应该如下所示:

structure(list(Server = structure(c(1L, 1L, 1L, 1L, 1L, 1L), .Label = "servera", class = "factor"), 
    Date = structure(1:6, .Label = c("7/13/2017 15:01", "7/13/2017 15:02", 
    "7/13/2017 15:03", "7/13/2017 15:04", "7/13/2017 15:05", 
    "7/13/2017 15:06"), class = "factor"), Host_CPU = c(1.812950134, 
    2.288070679, 1.563278198, 1.925239563, 5.350669861, 2.612503052
    ), UsedMemPercent = c(38.19, 38.19, 38.19, 38.19, 38.19, 
    38.22), jvm3 = c(75.65, 76.88, 56.93, 58.99, 65.29, 67.97
    ), jvm4 = c(39.43, 40.86, 42.27, 43.71, 45.09, 45.33), jvm5 = c(27.42, 
    29.63, 31.02, 32.37, 33.72, 37.71)), .Names = c("Server", 
"Date", "Host_CPU", "UsedMemPercent", "jvm3", "jvm4", "jvm5"), class = "data.frame", row.names = c(NA, 
-6L))

有任何想法吗?


请重新审视指数。如果使用索引机制[在 R 中,您主要可以使用三种类型的索引:

  • 逻辑向量:长度与列数相同,TRUE表示选择列
  • 数值向量:根据位置选择列
  • 字符向量:根据名称选择列

如果对数据框使用索引机制,则可以通过两种方式处理这些对象:

  • 作为列表,因为它们是内部列表
  • 作为矩阵,因为它们在许多情况下模仿矩阵行为

采取iris以数据框为例,比较从数据框中选择列的多种方式。如果将其视为列表,则有以下两个选项:

Use [[如果您想要向量形式的单列:

iris[["Species"]]
# [1] setosa     setosa     setosa ... : is a vector

Use [如果您想要一列或多列,但需要一个数据框:

iris["Species"]
iris[c("Sepal.Width", "Species")]

如果将其视为矩阵,则只需执行与处理矩阵完全相同的操作即可。如果您不指定任何行索引,这些命令实际上与上面使用的命令等效:

iris[ , "Species"] # is the same as iris[["Species"]]
iris[ , "Species", drop = FALSE] # is the same as iris["Species"]
iris[ , c("Sepal.Width", "Species")] # is the same as iris[c("Sepal.Width", "Species")]

因此,就您而言,您只需要:

select <- c("Server","Date","Host_CPU","UsedMemPercent",
            "jvm3","jvm4","jvm5")
df[select]

关于子集的注释:子集有效,但只能交互使用。帮助页面上有一条警告指出:

这是一个旨在交互使用的便利功能。为了 编程时最好使用标准子集函数,例如 [,特别是参数子集的非标准评估 可能会产生意想不到的后果。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何根据列名称对数据框进行子集化? 的相关文章

  • 将所有 0 值替换为 NA

    我有一个包含一些数字列的数据框 某些行具有 0 值 在统计分析中应将其视为空 在R中将所有0值替换为NULL的最快方法是什么 将所有零替换为 NA df df 0 lt NA 解释 1 它不是NULL你应该用什么来替换零 正如它所说 NUL
  • R 中的卡方拟合优度检验

    我有一个观察值向量 还有一个用模型计算的值向量 actual lt c 1411 439 214 100 62 38 29 64 expected lt c 1425 3 399 5 201 6 116 9 72 2 46 3 30 4 6
  • 如何使用“NA”作为字符串

    我有一个 csv 文件 其中一列是字符类型 该变量的很少有值是 NA 字符串 但是当我使用 read csv 读取 R 中的 csv 文件时 NA 字符串存储为 NA 我该如何修复它 您可以使用na strings论证中read csv r
  • R 和系统调用

    我过去曾使用 R 对命令行进行非常基本的调用 例子可以找到here https stackoverflow com questions 3284301 command line in r code 这一次 我希望模仿这段从 Windows
  • 使用格式表过滤数据框

    样本数据 修改自formattablegithub 文档 df lt data frame id 1 10 name c Bob Ashley James David Jenny Hans Leo John Emily Lee age c
  • data.table 相当于 dplyr::filter_at

    考虑数据 library data table library magrittr vec1 lt c Iron Copper vec2 lt c Defective Passed Error set seed 123 a1 lt sampl
  • 在两个向量之间交换元素(交叉)

    假设我有 chromosome 1 lt c 0010000001010000 chromosome 2 lt c 0100000001001010 我该如何实施step 3 5 Evaluate NC1 否 中 1 个chromosome
  • 使用 R 将图例添加到绘图中

    我使用 R 在一个图中创建了 4 条线 这是代码 Define 2 vectors cars lt c 123 07 110 51 96 14 98 71 101 3 trucks lt c 110 31 89 91 89 81 89 31
  • 计算网格中物种的出现次数

    我有大约500 000点R美国各地候鸟物种的出现数据 我试图在这些点上覆盖网格 然后计算每个网格中出现的次数 统计完计数后 我想将它们引用到网格单元 ID 在 R 中 我使用了over 函数只获取范围图中的点 这是一个形状文件 Read i
  • 获取数据集 R 包中所有对象名称的列表?

    如何获取对象中对象的确切名称列表datasets https stat ethz ch R manual R devel library datasets html 00Index html包裹 我在这里找到了很多 data package
  • 闪亮的传单添加大量分离的折线

    我有一个 200k 行数据集 其中包含出发地和目的地的坐标 我有一个 R 闪亮的应用程序 带有传单地图 可以在这些坐标上显示圆圈 尽管坐标数量很大 但效果很好 这是数据的简化示例 每行包含出行id 出发地经纬度 目的地经纬度 id lat
  • 如果 RCurl::getURL() 执行时间太长,如何停止执行?

    有没有办法告诉 R 或 RCurl 包在超过指定时间段时放弃尝试下载网页并转到下一行代码 例如 gt library RCurl gt u http photos prnewswire com prnh 20110713 NY34814 b
  • 将多个函数应用于一个向量

    我正在寻找一种将多个函数应用于一个向量的选项 我认为这对于逆应用函数来说是一种仁慈 其中一个函数应用于许多向量 或列 有没有办法指定两个或多个函数 例如 min 和 max 并将其应用于向量 与 CathG的评论类似 但没有get v lt
  • 挑战:优化取消列出[简单]

    因为 SO 最近有点慢 所以我发布了一个简单的问题 如果大鱼们能在这场比赛中留在替补席上并给新秀们一个回应的机会 我将不胜感激 有时我们的对象具有大量的大列表元素 向量 您如何将这个对象 取消列出 到单个向量中 证明你的方法比unlist
  • 使用 xtable 对乳胶输出的表进行排序

    我正在尝试生成一个排序表并导出到乳胶中 然而 xtable 似乎无法处理排序表 建议 a lt sample letters 500 replace T b lt table a c lt sort table a decreasing T
  • Dplyr 过滤多个类似条件

    我正在尝试在 dplyr 中做一个过滤器 其中的列就像某些观察结果 我可以使用 sqldf 作为 Test lt sqldf select from database Where SOURCE LIKE ALPHA OR SOURCE LI
  • 包什么时候需要为它自己的对象使用 :::

    考虑这个 R 包有两个函数 一个是导出函数 另一个是内部函数 hello R export hello lt function internalFunctions hello internal 你好 内部 R hello internal
  • 缩放geom_密度以将geom_bar与y上的百分比相匹配

    因为我对数学感到困惑上次我尝试问这个问题 https stackoverflow com questions 32412805 ggplot2 histogram with density curve that sums to 1 这是另一
  • 了解日期并使用 R 中的 ggplot2 绘制直方图

    主要问题 当尝试使用 ggplot2 制作直方图时 我无法理解为什么日期 标签和中断的处理无法像我在 R 中预期的那样工作 我在找 我的约会频率的直方图 刻度线位于匹配条下方的中心 日期标签在 Y b format 适当的限制 最小化网格空
  • 如何在复杂的皂膜GAM中设置更平滑的边界条件?

    我正在对南太平洋岛屿泻湖中宽吻海豚的分布进行建模 我想使用肥皂膜平滑器来模拟海豚在二维表面 经度 x 纬度 上存在的概率 考虑到陆地边界 显然海豚不能在陆地上行走 我想知道如何将我的研究区域 陆地和近海水域 的边界固定为等于零的条件 因为我

随机推荐

  • 如何为 Visual Studio 云测试的每个核心代理使用不同的 .csv?

    我正在尝试使用 Visual Studio Cloud Test 执行简单的 REST API 负载测试 https www visualstudio com en us docs test performance testing gett
  • lambda 表达式中的赋值

    我想定义一些 lambda 表达式来表示类实例属性的更新 我尝试写如下 Expression
  • 从 require.context 迁移到 import.meta.webpackContext

    我正在尝试将我的 Vue PWA 迁移到 ESM 替换所有require by import 但更换require context by import meta webpackContext在编译时给我以下警告 严重依赖 不支持直接访问 i
  • 在字典理解中使用 eval 时出现 NameError

    我正在尝试在我的班级中编写字典 data element eval self s element for element in key 我有这个错误 data element eval self s element for element
  • 如何在 ChangeNotifier 中使用 Futures?

    我有一个sqlite我从中读取数据的数据库 我还有一棵很长的小部件树 所以经过一番研究后我发现provider颤振包 但我不知道如何在类扩展中使用 FuturesChangeNotifier或者如何在我的小部件树中的任何位置使用它 clas
  • 为通过参数返回的函数创建类型映射

    我正在转换 C api gt Java 并且我有以下函数原型 Retrieves an individual field value from the current Line param reader pointer to Text Re
  • 如何启用电子身份验证的弹出窗口?

    我正在创建一个访问 url 的电子应用程序 当导航到该 URL 时 用户单击按钮并被重定向到在 Chrome 中显示此弹出窗口的 URL 如何在电子中启用 显示此弹出窗口 默认情况下似乎没有启用它 您在图片中看到的是 Chrome 打开一个
  • 内容的最大长度?

    我正在尝试使用连接服务器HttpURLConnection 但我的 PUT 方法有问题 我需要发送一个字符串1500 个字符 或更多 但在这种情况下 服务器会产生超时并返回500 服务器内部错误 如果我发送的字符串低于1400 个字符 我没
  • 在没有安装 Hadoop 的情况下在 Spark 上提交 .py 脚本

    我有以下简单的字数统计 Python 脚本 from pyspark import SparkConf SparkContext conf SparkConf setMaster local setAppName My App sc Spa
  • 硒中的单击相当于双击

    我有一个简单的代码 点击链接就会打开一个新窗口 但是在执行脚本时 单击与双击同一元素一样 会打开 2 个窗口 我正在使用 InternetExplorer 驱动程序 String baseURL URL to opened DesiredC
  • 检测用户是否对 Android 中的应用进行评分

    最近我读到一篇关于市场上的游戏的文章 我不会透露名称 因为我认为这种做法对 Android 来说是负面的 不想公开它 如果你没有评级就不允许更新市场5星 这就是文章所说的 我想知道这是否可以检测到 如果是 如何做到这一点 我只需要知道用户是
  • famo.us 中的表面渲染事件

    我正在寻找一个事件来告诉我何时渲染表面 以便我可以调用诸如 surface focus 之类的方法 如果我在创建表面后立即调用焦点 它将不起作用 如果我在任意时间后在计时器中调用它 我希望它能够被渲染 它就会起作用 所以一定有一个我可以使用
  • 反射诸如“double”之类的基本类型会导致意外的输出

    以下示例失败并显示 FAIL MyClass tests getClassReturnsConstructorForDouble Expected
  • 通过Windows批处理文件读取csv文件并创建txt文件

    我有一个 Excel 文件 每行有 5 个值 现在 我想通过批处理文件读取 csv 文件并使用文件中的内容创建文本文件 例如 如果我的 csv 文件 在一列中 中有 Apple Mango 则批处理文件应读取此 csv 文件 并应创建一个文
  • Android 模拟器无法访问互联网,共享互联网连接

    我已经安装了 Eclipse Juno 并将 ADT 也更新到 22 0 我创建了一个 Android 2 3 版本的自定义 AVD 工作正常 但我的模拟器上似乎没有互联网连接 注意 标题栏上还会显示 3G 符号 看看下面给出的我的模拟器的
  • 检测 Python 海龟游戏中的碰撞

    我正在尝试制作一个红海龟追逐蓝海龟的Python游戏 当红海龟抓住蓝海龟时 我希望它在屏幕上显示 碰撞 但它不起作用 当它碰撞时 什么也没有发生 它给我一个错误 Turtle 对象不可调用 from turtle import Turtle
  • 如何使用android.drm框架

    我正在开发一个基于 DRM 的 Android 应用程序 应用程序旨在在下载并获得对文件 音频 视频 的控制访问权限后对 音频 视频 文件进行加密 防止文件 音频 视频 复制和粘贴并使文档过期 从而无法再查看它们 为此我使用 android
  • ASP.NET 计时器事件

    protected void SubmitButtonClicked object sender EventArgs e System Timers Timer timer new System Timers Timer line 1 ge
  • JUnit 如何查找测试?

    我假设 JUnit 找到了测试 在派生自的类中 junit framework TestCase 通过寻找带有注释的方法 Test 但是 我已经包含了一个测试http 256stuff com sources jenkins hash ja
  • 如何根据列名称对数据框进行子集化?

    我有这个数据框 dput df structure list Server structure c 1L 1L 1L 1L 1L 1L Label servera class factor Date structure 1 6 Label