在 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 中,如何访问因子每个级别的第一个元素? 的相关文章

随机推荐

  • 使用 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