在 R 中,如何访问因子每个级别的第一个元素?

2024-02-03

我有一个像这样的数据框:

n = c(2, 2, 3, 3, 4, 4) 
n <- as.factor(n)
s = c("a", "b", "c", "d", "e", "f") 
df = data.frame(n, s)  

df
  n s
1 2 a
2 2 b
3 3 c
4 3 d
5 4 e
6 4 f

我想访问我的因子每个级别的第一个元素(并且在本例中有一个包含a, c, e).

可以达到一个级别的第一个元素,

df$s[df$n == 2][1]

但它并不适用于所有级别:

df$s[df$n == levels(n)]
[1] a f

你会怎么做?

更进一步,我想修改我的数据框,看看哪个是每次出现时每个级别的第一个元素。在我的示例中,新列应该是:

  n s rep firstelement
1 2 a   a            a
2 2 b   c            a
3 3 c   e            c
4 3 d   a            c
5 4 e   c            e
6 4 f   e            e

Edit。我的答案的第一部分解决了original问题,即before“并走得更远”(这是由OP在编辑中添加的)。

另一种可能性,使用duplicated. From ?duplicated: "duplicated()确定向量或数据帧的哪些元素是具有较小下标的元素的重复项。”

这里我们使用!,逻辑非 (NOT),用于选择not“n”的重复元素,即“n”每个级别的第一个元素。

df[!duplicated(df$n), ]
#   n s
# 1 2 a
# 3 3 c
# 5 4 e

Update直到现在才看到您的“并进一步”编辑。我的第一个建议肯定是使用ave,正如 @thelatemail 和 @sparrow 已经提议的那样。但为了深入研究 R 工具箱并向您展示另一种选择,这里有一个dplyr way:

对数据进行分组n, 使用mutate函数创建一个新变量“first”,其值为“s的第一个元素”(s[1]),

library(dplyr)

df %.%
  group_by(n) %.%
  mutate(
    first = s[1])
#   n s first
# 1 2 a     a
# 2 2 b     a
# 3 3 c     c
# 4 3 d     c
# 5 4 e     e
# 6 4 f     e

或者全力以赴dplyr便利功能及使用first代替[1]:

df %.%
  group_by(n) %.%
  mutate(
    first = first(s))

A dplyr您原来问题的解决方案是使用summarise:

df %.%
  group_by(n) %.%
  summarise(
    first = first(s))

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

在 R 中,如何访问因子每个级别的第一个元素? 的相关文章

  • 使用 stargazer 分析包含时间序列的数据帧

    我有一个面板数据集共 10 个观测值和 3 个变量 观测值 30 的数量 10 行 国家 地区 2 列 迁移参数 相应年份的 1 列 可以这么说 我的数据框由 3 个年度数据框组成 我该如何申请观星者考虑到它是一个面板数据集 所以最大 N
  • 栅格堆叠后如何写入?

    我想操作几个光栅文件 然后再次写入它们 rasterfiles lt list files C data envi full names TRUE d1 lt overlay stack rasterfiles fun function x
  • R lubridate:当地语言的工作日

    如何获取本地语言的工作日和月份 My code library lubridate data lt c 10 02 2015 11 03 2015 data lubri lt dmy data wday data lubri label T
  • 无法在 Document-Term-Matrix 中看到 `RTextTools::toLower()` 文本的结果

    我尝试创建一个矩阵 为此我想降低文本 为此 我使用此 R 指令 matrix create matrix tweets 1 toLower TRUE language english removeStopwords FALSE remove
  • ggplot2 - 添加具有不同中断和标签的辅助 y 轴

    是否可以使用 ggplot2 手动向辅助 y 轴添加中断和标签 see bottom right 我希望在右侧 y 轴上有更紧凑的中断 代表条形 该图将作为基本情况 然后我将展示如何更改辅助 y 轴上的分隔符和标签 sapply c pip
  • 在 mutate 和 across 之后使用 ~separate

    目的是将所有物种 setosa 行转换为一行 setosa 这是一个最小的示例 实际上有更多列和更多组 我有这个数据框 head iris 2 gt select 1 2 5 gt group by Species Sepal Length
  • 使用滑动窗口动画 ggplot 时间序列图

    我正在寻找在不失去分辨率的情况下对长时间序列图进行动画处理的方法 我希望视图能够 平移 数据 显示从开始到结束的滑动子集 假设我有以下内容 library ggplot2 library dplyr library gganimate df
  • 如何在 R 中为回归量创建“宏”?

    对于长且重复的模型 我想创建一个 宏 在 Stata 中称为 宏 并通过以下命令完成 global var1 var2 其中包含回归量的模型公式 例如来自 library car lm income education prestige d
  • 聚合日期时间以总结在特定条件下花费的时间

    我很困惑我应该如何继续 我下面有一些虚拟数据 Date lt as POSIXct c 2018 03 20 11 52 25 2018 03 22 12 01 44 2018 03 20 12 05 25 2018 03 20 12 10
  • ggplot 图例标签内的希腊字母、符号和换行符

    我在尝试着 有换行符 自动或强制 对齐文本 左对齐或左右对齐 有希腊字母和百分号 在 gglot 图例标签内 我尝试了几种方法 但我似乎无法将我读到的所有技巧结合起来 我可以通过插入来换行 n进入标签 但这似乎不适用于希腊字母 不适用于图例
  • 使用自定义渐变填充直方图箱

    我想在 R 和 ggplot2 中创建一个直方图 其中根据连续的 x 值填充箱 大多数教程仅通过离散值或密度 计数进行着色 下列的这个例子 https stackoverflow com questions 40284227 how to
  • R闪亮主面板显示样式和字体

    我正在学习闪亮的应用程序 并且有一些关于调整布局的基本问题 特别是样式和字体 希望得到指点或明确的答案 谢谢 考虑一个基本的输入输出应用程序 用户在 sidebarPanel 中输入数据 然后在 mainPanel 中反应性地输出结果 如何
  • 如何使用autoconf重新生成配置文件?

    我使用 autoconf 重新生成配置文件 它有效 但是当我执行生成的配置文件时 configure 有一些错误消息 例如 configure line 3713 syntax error near unexpected token bla
  • 删除缺失的数据值

    我删除了原始帖子 以便能够发布更大版本的数据集 实际上总共有 418 行 这是我正在进行的生存分析的数据 第一列是 ID 号 其他列标记为 V2 V20 有很多缺失的数据 用 表示 我用coxph 函数来获取以下内容 Saves survi
  • R 错误:无法更改锁定绑定的值

    我试图估计无限数字流的平均值和标准差 当我运行代码时 出现错误消息 无法更改锁定绑定的值 我做了一些研究 发现这个错误与我使用全局变量有关 但我无法弄清楚 任何帮助将非常感激 在此先感谢您的帮助 define global variable
  • 如何读取 R 中的每个 .csv 文件并将其导出到单个大文件中

    你好 我有以下格式的数据 101 20130826T155649 3 1 round 0 10552 180 yellow 12002 1 round 1 19502 150 yellow 22452 1 round 2 28957 130
  • 如何从数据框中删除少于 5 个观察值的个体 [重复]

    这个问题在这里已经有答案了 为了澄清这个问题 我将简要描述数据 中的每一行data frame是一个观察值 列代表与该观察值相关的变量 包括 观察到什么个体 观察时间 观察地点等 我想排除 过滤观察值少于 5 个的个体 换句话说 如果 in
  • 在 Lavaan 生长曲线模型中提取个体轨迹

    我已经使用 R 的 Lavaan 包中的 Growth 函数成功地对一项研究的纵向数据进行了建模 我找不到任何关于如何提取每个参与者的预测轨迹的记录 我只能找到整个组的预测轨迹 在摘要输出的 拦截 部分下给出 使用 lavPredict m
  • 通过 r markdown 中的循环创建代码片段

    如同如何使用R中的knitr创建一个包含代码块和文本的循环 https stackoverflow com questions 36373630 how to create a loop that includes both a code
  • 通过 Shiny 中的串扰将 Plotly 与 DT 结合使用

    我正在编写一个应用程序来将 csv 文件读取为闪亮的并将散点图与 DT 表链接起来 我几乎遵循了 Plotly 网站上 DT 数据表上的示例 https plot ly r datatable https plot ly r datatab

随机推荐

  • 使用 css3 的 SVG 阴影

    是否可以使用 css3 为 svg 元素设置阴影 例如 box shadow 5px 5px 5px 888 webkit box shadow 5px 5px 5px 888 我看到一些关于使用滤镜效果创建阴影的评论 有单独使用css的例
  • 是什么导致 SAML 响应中出现响应者状态

    我在使用我们的平台与客户设置 SAML 集成方面花费了相当多的时间 我们正在使用OneLogin 的 php sdk https github com onelogin php saml我们作为服务提供商 不确定他们使用什么作为身份提供者
  • php $_POST 数组在提交表单时为空

    我构建了一个自定义内容管理系统 CMS 它在我的开发盒 Ubuntu PHP5 MySQL5 上完美运行 我刚刚将其移至客户的生产框中 现在所有表单提交都显示为空的 POST 数组 我发现了一个技巧来验证数据是否确实正在传递file get
  • 我如何更好地理解 php 中 symfony2 的服务层

    我正在学习使用 symfony2 但我很难学习什么是服务层以及它可以在哪里使用 我怎样才能更好地理解symfony2中的服务层 我会尽力解释服务 但是 Symfony2docs http symfony com doc current bo
  • 如何在谷歌地图中添加多个标记

    我需要在谷歌地图中添加多个标记 通过使用谷歌地图库添加谷歌地图 我还在这张地图中添加了一个标记 对于单个标记代码 控制器 data tunnels this gt functional gt getTunnelData config cen
  • 最终用户实用程序/应用程序是否应该在 crates.io 上注册?

    是否可以在以下网站上注册普遍有用的 实用程序 应用程序 crates io http crates io The FAQ http doc crates io faq html没有解决这个问题 并且通过浏览 有最终用户应用程序的示例 主要是
  • 如何使用动态 IP 地址将自己从 Google Analytics 中过滤掉?

    如果您从动态 IP 地址访问该网站 有人知道如何设置 Google Analytics 来过滤掉自己吗 我不想将自己纳入家庭使用的统计数据中 因为我通过 Verizon FiOS 拥有动态 IP 地址 谷歌目前有一个浏览器插件 可以阻止您的
  • 在java中调用main内部的main方法

    我们可以在main中调用main方法吗 public static void main String args main a b c 尝试谷歌 找不到链接 抱歉 如果问题很琐碎 您可以但使用正确的格式 main new String a b
  • 重构我的 C# 代码 - Switch 语句

    我目前正在使用以下代码 基本上 此方法为每个任务分配正确的布尔标志 TRUE FALSE 随着需要添加的任务越来越多 我可以看到 switch 语句必须增长才能满足每个任务 必须有一种更简单的方法 来保持方法较小 代码 忘记命名约定 已更改
  • 什么是ReservedCodeCacheSize 和InitialCodeCacheSize?

    有人可以解释一下 JVM 选项吗ReservedCodeCacheSize and InitialCodeCacheSize是 具体来说我什么时候 为什么要改变它 我如何确定合适的尺寸 这就是文档所说的 XX ReservedCodeCac
  • 为什么Java NIO专门引入Buffer类而不是使用数组?

    有人问我一个问题 为什么字节数组不够用 NIO专门引入了一个类Buffer 这个问题的好答案是什么 它只是一种简化读 写操作的包装类吗 如果可能的话 请给我们举个例子来说明我们如何从中受益Buffer不能 很难用数组完成的类 None
  • Facebook API 实时好友在线状态更新

    我目前正在 Facebook 上开发一个应用程序 其中包含我的朋友列表并显示他们的在线状态 为了得到这个 我使用了 fql SELECT uid name online presence status FROM user WHERE uid
  • 如何知道列表中元素的个数是偶数还是奇数

    如何确定任意列表中的元素数量是偶数还是奇数 I tried list index 获得所有索引 但我仍然不知道如何告诉程序什么是偶数 什么是奇数 您可以使用内置函数len 为了这 Python 文档 len http docs python
  • WPF 从 DataTrigger 设置 Image.Source

    我正在尝试定义一个DataTrigger for an Image元素 以便显示连接 断开连接的图像 我不断收到Invalid PropertyDescriptor信息 有任何想法吗
  • 根据方法名称过滤 log4net - 不太明白

    我使用 log4net 来记录我的 Web 应用程序的进度 使用 Log4PostSharp 来 AOP 注入所有方法 这达到了记录 几乎 所有内容的预期效果 并且很好 我现在需要将 Page Load 方法记录到文件 控制台 显然 我可以
  • 如何在 Silverlight 中序列化派生类

    我在 XAML 中创建了一个自定义控件 并添加了一些自定义属性 现在 如果可能的话 我想将其序列化为 JSON 这是 基本上 我所拥有的 public partial class MyCustomClass UserControl publ
  • Ninject MVC3 - 引导程序抛出“已初始化”异常

    我创建了一个空的 Asp Net MVC3 项目 并使用 nugetinstall package Ninject MVC3 无需执行任何其他操作 没有注册服务 甚至没有创建控制器 我就运行该应用程序 该项目在 NinjectMVC3 cs
  • 在 ASP.NET MVC 中组合和缩小 JS 和 CSS

    我创建了默认的 ASP NET MVC 3 Web 应用程序 然后我将三个 css 和三个 js 文件添加到 Views Shared Layout cshtml 视图中 Content Site css rel stylesheet ty
  • Google 地图 API 找不到 $(document).ready 中定义的回调

    我在使用 Jquery 和 Google 地图 API 时遇到问题 脚本似乎在 html 中正确定位
  • 在 R 中,如何访问因子每个级别的第一个元素?

    我有一个像这样的数据框 n c 2 2 3 3 4 4 n lt as factor n s c a b c d e f df data frame n s df n s 1 2 a 2 2 b 3 3 c 4 3 d 5 4 e 6 4