按因子选择数据框中的第 n 个元素

2023-12-10

我有一个带有文本列的数据框name和因素city。首先按字母顺序排列city进而name。现在我需要获取一个数据框,其中每个数据框仅包含第 n 个元素city,保持这个顺序。如何在没有循环的情况下以漂亮的方式完成它?

I have:

name    city
John    Atlanta
Josh    Atlanta
Matt    Atlanta
Bob     Boston
Kate    Boston
Lily    Boston
Matt    Boston

我想要一个函数,它返回第 n 个元素city,即,如果它是第三个,则:

name    city
Matt    Atlanta
Lily    Boston

它应该返回NULL for name如果超出所选范围city,即第四个:

name    city
NULL    Atlanta
Matt    Boston

请仅使用基本 R 吗?


在基本 R 中使用by:

设置一些测试数据,包括额外的超出范围的值:

test <- read.table(text="name    city
John    Atlanta
Josh    Atlanta
Matt    Atlanta
Bob     Boston
Kate    Boston
Lily    Boston
Matt    Boston
Bob     Seattle
Kate    Seattle",header=TRUE)

在每个城市获得第 3 件物品:

do.call(rbind,by(test,test$city,function(x) x[3,]))

Result:

        name    city
Atlanta Matt Atlanta
Boston  Lily  Boston
Seattle <NA>    <NA>

为了得到你想要的,这里有一个小函数:

nthrow <- function(dset,splitvar,n) {
    result <- do.call(rbind,by(dset,dset[splitvar],function(x) x[n,]))
    result[,splitvar][is.na(result[,splitvar])] <- row.names(result)[is.na(result[,splitvar])]
    row.names(result) <- NULL
    return(result)
}

称呼它为:

nthrow(test,"city",3)

Result:

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

按因子选择数据框中的第 n 个元素 的相关文章

  • 如何在不指定数据集的情况下调整函数

    我有一个函数 基本上可以过滤SPV行 如下所示 请注意 我这样做return coef lt function df1 idd dmda CategoryChosse 然而 我不希望df1作为函数的参数 而是函数的属性df1数据集 在本例中
  • 将值添加到 R 中 for 循环内的向量

    我刚刚开始学习 R 我编写了这段代码来学习函数和循环 squared lt function x m lt c for i in 1 x y lt i i c m y return m squared 5 NULL 为什么这个返回NULL
  • 在闪亮仪表板中显示/隐藏菜单项

    当进入应用程序时 我需要隐藏一个菜单项 当用户选择某个值时 菜单项必须出现 我努力了shinyjs功能hidden 并且它隐藏了一个 menuItem 但是当使用show or toggle 菜单项不会出现 我发现了Rshinydashbo
  • lme4:如何指定 2 个与随机截距的相关性,而不添加随机斜率之间的相关性

    重新发布自stats stackexchange com https stats stackexchange com q 195385 33560 我试图在 R 的 lme4 包中指定一个模型 其中随机截距和随机斜率之间有 2 个相关性 但
  • 中断、保存并稍后继续循环的最佳方法

    事情是这样的 我有一个需要几天时间才能运行的循环 我想中断循环 检查进度 然后稍后继续 目前 我正在使用以下内容 for i in 1 100000 Sys sleep i 2 5 print i write csv i i csv 我检查
  • 在 R/ggplot2 中将字符串转换为函数参数的最佳方法? [复制]

    这个问题在这里已经有答案了 我正在开发一个闪亮的应用程序 用户可以选择可以使用 ggplot2 绘制哪些变量 但是我完全不确定将字符串 即要绘制的变量的名称 转换为合适的函数参数的最佳方法 考虑以下非常人为的 有效的示例 df lt dat
  • R:使用 dcast 时包含没有条目的因子

    我在数据帧上使用 reshape2 函数 dcast 其中一个变量是某些级别未出现在数据框中的因素 但我会将所有值包含在创建的新列中 例如 假设我运行以下命令 library reshape2 dataDF lt data frame id
  • 删除 R 中的胡须和异常值

    我有连续的数据 我想用它来绘制R s plotly with a box or violin没有异常值和胡须的绘图 set seed 1 df lt data frame group c rep g1 500 rep g2 700 rep
  • 是否可以使用像“tz=NULL”这样的东西?...“as.POSIXct”默认为依赖于语言环境的时区(与“as.Date”不同),这会导致问题

    我知道这是一个长期存在 根深蒂固的问题 但这是我经常遇到的问题 而且我看到初学者R经常与此斗争 我希望有一个令人满意的解决方案 到目前为止 我的谷歌和 SO 搜索都是空的 但如果在其他地方重复 请指出正确的方向 TL DR 有没有办法使用类
  • 在 RStudio 控制台中显示西里尔字母

    我在 Rstudio 控制台中显示俄语字符时遇到问题 我使用 readxl 包加载带有俄语的 Excel 文件 西里尔字母在数据框中正确显示 但是 如果我运行一个输出包含变量名称的函数 RStudio 控制台将显示符号而不是正确的西里尔字符
  • 两个闪亮的操作按钮

    我正在编写一个闪亮的函数 其中包含两个操作按钮 这两个按钮是左右按钮 单击时可以帮助绘图移动 第一次单击时 这两个按钮都工作正常 当我重新单击它们时 就会出现问题 无论我单击哪个按钮 它都会在两个范围之间来回弹跳 我猜可能是 右 和 左 按
  • 为什么 quosures 在 group_by() 中起作用,但在 filter() 中不起作用?

    我正在构建一个函数 我将根据字符串操作数据框 在该函数中 我将根据字符串构建一个列名称 并使用它来操作数据框 如下所示 library dplyr orig df lt data frame id 1 3 amt c 100 200 300
  • Sweave 缓存包

    我正在尝试编写一份报告 我的问题是每次我编译 R 时都会加载我在报告中使用的包 如 ggplot2 MASS cubature 这是非常耗时的 有没有办法查包裹 I found 缓存编织但它不起作用 这是我在 sweave 文件中添加的块
  • 在 R 中使用科学记数法和 xtable

    我将 data frame 传递给 xtable dat table lt xtable dat 1 20 digits 10 我宁愿使用科学记数法 而不是像那样显示数字 我该怎么做呢 看过了 但我发现的只是R 格式化xtable中的数字
  • 如何连接 R 列表中的多个 .wav 文件?

    我有一个 wav 文件列表my list library seewave library tuneR data tico audio lt tico freq lt 22050 breaks lt c 0 0 2 0 4 0 6 0 8 i
  • 根据第二个数据帧中的匹配创建新列

    如果有两个数据框 top3df http dpaste com 1709875 and qw qw lt structure list id structure 1 25 Label c w01 w02 w03 w04 w05 w06 w0
  • 如何将变量传递给 ddply 中的自定义函数?

    考虑以下数据 d data frame experiment as factor c foo foo foo bar bar si runif 5 ti runif 5 我想进行相关性测试si and ti 对于每个experiment因素
  • R/ggplot2:如何匹配重叠区域图中的图例和绘图颜色?

    我有两个面积图 称为 蓝色 和 绿色 其中green大部分是在blue情节 但在极少数点上 它高于blue阴谋 我想使用透明度说alpha 0 2对于两者 并且还能够为每个指定颜色 我现在的问题是 自从green情节主要是在blue地块 其
  • 动态显示仪表板页面

    我有一个实用的闪亮应用程序 它使用shinydashboard包裹 新功能需要特定于用户的行为 例如 针对不同的用户名使用不同的数据集 因此我打算 显示登录表单 验证凭据并设置反应值LoggedIn to true如果成功的话 显示实际情况
  • 修改x轴刻度标签

    我正在尝试更改由生成的箱线图的 x 轴刻度标签ggplot2 x 轴是一个分类变量 HabFac 我想要的是将其刻度更改为 6 个化学品 A E 下面是我的代码 raw data read table Read data p TT ggpl

随机推荐

  • 具有 40+ 列的 mysql 表

    我的表格中有 40 多列 我必须添加更多字段 例如当前城市 家乡 学校 工作 大学 大学 将为许多匹配的用户提取这些用户数据 这些用户是共同的朋友 与其他用户朋友一起加入朋友表以查看共同的朋友 并且未被阻止并且还不是该用户的朋友 上面的请求
  • 在Conda环境中使用pip包

    我对如何通过安装软件包感到困惑pip and conda一起工作 我所知道的是 pip and conda安装不同的包格式 除了这一点之外 这里还有什么含义呢 pip无法安装conda封装格式 这对于这个问题的目的来说很好 因为您始终可以使
  • 在Python中组合列表

    我正在尝试合并 2 个列表并希望形成组合 a ibm dell b strength weekness 我想形成像这样的组合 ibm strength ibm weekness dell strength dell weakness 我尝试
  • 基于位置的增强现实 Android 应用程序

    我正在开发基于实时位置的增强现实 Android 应用程序 这是一个简单的概念 我的应用程序应该显示我周围的一些地方 我有 对此进行了深入研究 但我仍然遇到问题 我有我的 GPS 坐标 以及目标地点的 GPS 坐标 我的问题是 如何检索手机
  • Android:SQLite (ORMLite) 事务隔离级别

    我在我的 Android 项目中使用 ORMLite 我知道 Sqlite 负责文件级锁定 多个线程可以读取 一个可以写入 锁可以防止多次写入 有人可以解释一下 如果一个线程正在更新某些记录而另一个线程正在尝试读取该记录 会发生什么情况 线
  • 向上导航未启动父活动

    我有两项活动A and B其中 A 是 B 的父级 现在我显示一个启动 B 的通知 当我点击该通知时 B 就会启动 然后我点击up按钮 当活动 A 位于后台堆栈时 它可以正常工作 但否则应用程序只是关闭并且不会启动活动 A 我的设置 我已在
  • 子目录中的 Zend 应用程序使 Zend 布局链接正常工作

    我在子目录中设置了一个 Zend 应用程序 不要问为什么我必须这样做 不是我喜欢的方法 但我没有这样的选择 Zend 应用程序驻留在名为 dsa 的子目录中 http dsa dev dsa 我的 htaccess RewriteEngin
  • 如何确定 iPhone 6+ (plus) 处于标准模式还是缩放模式

    我正在尝试确定 iPhone 6 是处于标准模式还是缩放模式 但我找不到任何可以帮助确定这一点的 API 到目前为止 唯一指示手机处于哪种模式的是nativeScale if UIScreen mainScreen nativeScale
  • Numpy 矩阵乘法 U*B*U.T 产生非对称矩阵

    在我的程序中 我需要以下矩阵乘法 A U B U T where B is an M M对称矩阵 以及U is an N M其列正交的矩阵 所以我期望A也是一个对称矩阵 然而 Python 并没有这么说 import numpy as np
  • 可以读取但不能更新

    Problem 在 SQL Server 2008 R2 中 使用经典 ASP 页面中的 SQL 来更新数据库的任何尝试都会被拒绝 简而言之 可以读取 但无法在 ASP 页面中使用 SQL 更新 写入数据库 错误信息 SQL Server
  • 删除/删除数组中某些索引处的值

    我有一个像这样的数组 peoples dick jane harry debra hank frank 一个包含这样的键 keys 1 6 3 12 现在我可以写这样的东西 var peoplesStripedOfKeyPostions f
  • 图像列表/图像内存不足异常

    从 ImageList 获取图像时 我遇到了 OutOfMemoryException 我一直无法找到该问题的适当解决方案 我有一个自定义 ListView 控件 它附加了一个用于绘制 ListViewItems 的事件 然后调用一个用于绘
  • 如何在 Windows 中以编程方式安装驱动器?

    我们生产和销售一种设备 我们的用户有时希望通过多个 USB 集线器将其大量连接到他们的计算机 它是一种 USB 复合设备 同时具有人机接口 HID 和大容量存储 MSD 接口 Windows 会自动安装每个设备的文件系统 直到 Z 处的字母
  • JButton.setBounds(x,y,w,h) 似乎不起作用

    import javax swing JButton import javax swing JFrame import javax swing SwingUtilities public class SimpleExample extend
  • Docker:命令返回非零代码:137

    我的docker文件如下 Use python 3 6 image FROM python 3 6 ENV PYTHONUNBUFFERED 1 install required packages RUN apt get update RU
  • 如何找到给定数据库的 Sybase 索引列表?

    如何在 Sybase 中找到给定数据库的索引列表 Query against sysobjects and sysindexes SELECT o name i name FROM sysobjects o JOIN sysindexes
  • 获取给定一周的第一天

    我将当前周作为整数 截至目前为 43 我需要周一的日期 格式如 Mon Oct 25 我以为我可以通过一个函数来实现这一点 但我不知道该怎么做 有什么建议么 编辑 我尝试了 R 的建议 但没有给出预期的结果 难道是我执行错了 time t
  • 在 UIDocument 完成处理程序中,在 IOS 5 中永远不会被调用,但在 IOS 6 中可以工作

    在 UIDocument 完成处理程序中 在 IOS 5 中永远不会被调用 但在 IOS6 中可以工作 None
  • 如何使用 Word 互操作在表格中为每个新页面创建标题?

    我正在尝试创建一个带有标题的表格 我希望该表的每个新页面都重复此标题 如何使用 Word 2007 Interop 在 C 中执行此操作 Microsoft Office Interop Word Table table table Row
  • 按因子选择数据框中的第 n 个元素

    我有一个带有文本列的数据框name和因素city 首先按字母顺序排列city进而name 现在我需要获取一个数据框 其中每个数据框仅包含第 n 个元素city 保持这个顺序 如何在没有循环的情况下以漂亮的方式完成它 I have name