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

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(使用前将#替换为@)

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

  • 带有用户输入的knitr

    我正在使用 R markdown 并使用 Rstudio 来 Knit 我有以下 R markdown 文件 title Untitled author date output html document r setup include F
  • 如果“testthat”测试在“R”中失败,则打印自定义诊断信息

    I use a testthat单元测试来检查是否data frame函数返回的结果与我期望它返回的结果相同 如果测试失败 testthat打印一些诊断信息 例如 MyFunction df orig is not identical to
  • 从网络源获取 R 中的数据作为数据框

    我正在尝试使用 RCurl 包将一些空气污染背景数据作为 data frame 直接加载到 R 中 该网站有 3 个下拉框 用于在下载 csv 文件之前选择选项 如下图所示 我试图从下拉框中选择 3 个值 并使用 下载 CSV 按钮将数据作
  • 将summary()写入as.data.frame以在ggplot / R中使用

    请查找 af 数据样本t below 我正在使用以下方法进行竞争风险分析etmCIF来自etm package 产生以下结果 这很好 但需要更好的图形 曾经有一个ggtrans etm函数将数据导入ggplot 然而 这个功能显然被删除了
  • 使用底格里斯河从纬度/经度获取人口普查区

    我有相对较多的坐标 我想获取其人口普查区 除了 FIPS 代码 我知道我可以使用以下命令查找各个纬度 经度对call geolocator latlon 已完成here https stackoverflow com questions 5
  • 将值替换为其各自列的名称

    我有一个数据框 Code 401k CVS 101A true 231N true FD54 true 99JB 85F4 true 我试图用相应的列名称 例如 401k 替换 true 字符值 这是我想要的输出 Code 401k CVS
  • 如何使用 R 中带引号的字符值内的序列读取 CSV?

    这是一个包含两个字符列的 CSV 文件 key value a 所有字符值都用双引号引起来 并且有一个顺序 在值之一内 转义引号加分隔符 我无法通过 read csv readr 中的 read csv 或 data table 中的 fr
  • 将列表中的列转换为 R 中的数据框

    我有使用 R 创建的以下列表 set seed 326581 X1 rnorm 10 0 1 Y1 rnorm 10 0 2 data data frame X1 Y1 lst lt replicate 100 df smpl lt dat
  • 使用 dplyr:group_by 将数据帧分成多个子集?

    有没有办法根据 group by 组使用 dplyr 将一个数据帧拆分为数据帧的子集 mtcars gt group by cyl gear gt codes 非常感谢 好吧 并不是你真的想要 但你可以这样做tidyr 即nearly一样的
  • R:将 readRDS 应用于 .Rds 文件名的列表对象

    我有几个包含数据帧对象的 Rds 文件 我想对每个文件应用一个函数并将数据帧绑定到单个数据帧中 但是 当我尝试从文件名列表中读取多个 Rds 文件时 我收到错误 FUN X i 中的错误 从连接读取时出错 readRDS 不适用于列表吗 R
  • 从 R 中的 HTTPS 连接逐行读取

    当创建连接时open r 它允许逐行读取 这对于批量处理大数据流非常有用 例如这个脚本 https gist github com jeroenooms d33a24958d99bb969ac0通过一次读取 100 行来解析相当大的 gzi
  • 将 sf voronoi 多边形裁剪到边界框时出错

    我正在尝试将 voronoi polygons 使用 sf package 创建 剪辑 到边界框 但它引发了我无法定义的错误 我对 R 的空间世界不太有经验 感谢所有帮助 样本数据 stations lt structure list ST
  • 根据另一列中的键累积一列中的值时出现问题

    我有一个看起来像这样的数据框 我需要使用 PROJ ID 列中的字符串创建一个新的值列 并形成 PROJ NAME 列中的值字符串 这里提供的解决方案 根据 r 中另一列的键累积一列中的值 https stackoverflow com q
  • 将函数应用于 3d 数组的每一层,返回一个数组

    假设您有一个包含行 列和层的 3 维数组 A lt array 1 27 c 3 3 3 想象你有一个函数 它接受一个矩阵作为输入并返回一个矩阵作为输出 就像t 如何将该函数应用于数组的每一层 返回与第一层大小相同的另一个数组 我觉得我应该
  • R - 通过覆盖和递归合并列表

    假设我有两个带有名字的列表 a list a 1 b 2 c list d 1 e 2 d list a 1 b 2 b list a 2 c list e 1 f 2 d 3 e 2 我想递归地合并这些列表 如果第二个参数包含冲突的值 则
  • ggplot散点图中的图例问题

    我想使用 ggplot 创建显示方法比较数据的散点图 绘图应包含原始数据 理想线和带误差的拟合线 图例应显示理想线和拟合线的线型 线宽 线颜色 我可以获得大部分我想要的东西 但是图例存在以下问题 图例显示每种线型有 2 条线 为什么 如何解
  • 如何在R中同时对三个字段进行网络分析

    如何在 R 中同时对三个字段进行网络分析 下面是示例数据以及desired output在最后一栏中 df lt data frame stringsAsFactors FALSE id 1 c ABC ABC BCD CDE DEF EF
  • ggplot2、R 中的单条形条形图

    我有以下数据和代码 gt ddf var1 var2 1 aa 73 2 bb 18 3 cc 9 gt gt dput ddf structure list var1 c aa bb cc var2 c 73L 18L 9L Names
  • 如何将 ggrough 图表另存为 .png

    说我正在使用R包裹ggrough https xvrdm github io ggrough https xvrdm github io ggrough 我有这个代码 取自该网页 library ggplot2 library ggroug
  • 非闪亮上下文中的反应式对象绑定

    实际问题 你怎样才能近似反应性环境 行为 http shiny rstudio com tutorial lesson6 建立者shiny http shiny rstudio com函数 或者甚至可能在一个函数中使用这些函数无光泽上下文以

随机推荐

  • 如何为 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