R 中的 apply() 与用户定义函数

2024-02-15

我有一个数据框,其中有如此排列的选票和政党标签

dat <- data.frame( v1=c(25, 0, 70), 
                   v2=c(75, 100, 20), 
                   v3=c(0, 0, 10), 
                   l1=c("pA", ".", "pB"), 
                   l2=c("pB", "pC", "pC"), 
                   l3=c(".", ".", "pD") )

这样每一行都是一个分析单元。只有得票方需要考虑,该功能提取赞成票或相应标签

getpos <- function(vector, vorl="v"){ # change to "l" to report labels
    vot <- vector[grep( "v", colnames(vector) )]; 
    lab <- vector[grep( "l", colnames(vector) )];
    if (vorl=="v") {vot[vot>0]} else {lab[vot>0]};
}
getpos(dat[1,])           # votes for obs 1
getpos(dat[1,], vorl="l") # labels for obs 1

我希望在数据帧 dat 的每一行中运行函数 getpos ,以便生成具有不同长度的投票/标签向量的列表。应用该函数不会返回我期望的结果:

apply(X=dat, MARGIN=1, FUN=getpos, vorl="l")

有人能发现问题吗?相关的是,这是否可以更有效地实现?


这里发生的情况是,数据框中的行在被提取后不再具有列名称apply(但他们确实有names):

Try:

getpos <- function(x, vorl="v"){ 
     vot <- x[grep( "v", names(x) )] ;  lab <- x[grep( "l", names(x) )];
     if (vorl=="v") {vot[vot>0]} else {lab[vot>0]};
 }

> apply(dat, MARGIN=1, FUN=function(x2) getpos(x2, vorl="l") )
#-------------
[[1]]
  l1 
"pA" 

[[2]]
  l2 
"pC" 

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

R 中的 apply() 与用户定义函数 的相关文章

  • Django 中的 Rpy2 错误 - 未为“”类型的对象定义转换“py2rpy”

    我以前从未使用过 R 并且正在尝试使用 rpy2 从 python 调用 R 函数 它可以在独立的 python 终端上运行 但不能在 Django 中运行 但rpy2似乎无法将python字符串转换为r对象 我正在使用同事提供的自定义库
  • 聚合日期时间以总结在特定条件下花费的时间

    我很困惑我应该如何继续 我下面有一些虚拟数据 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
  • stat_function 从函数生成平线

    我有以下代码 library ggplot2 f lt function x if x gt 2 1 x 0 3 else 0 graph lt ggplot data frame x c 0 10 aes x graph lt graph
  • 将不同的 grViz 组合成一个图

    我想结合不同的DiagrammeR绘制成一个图形 生成的图如下例所示 library DiagrammeR pDia lt grViz digraph boxes and circles a graph statement graph ov
  • 如何在基数 R 中进行分组

    我想使用以下 SQL 查询来表达base R 没有任何特定的包 select month day count as count avg dep delay as avg delay from flights group by month d
  • 根据 R 数据框中的名称对列进行平均

    我想知道是否有一种有效的方法来获取每组的平均值类似命名的列谁的名字结尾为 1S and 2S ex ex1S ex2S at time 1并取每组的平均值类似命名的列谁的名字结尾为 1C or 2C ex ex1C ex2C at time
  • 如何在R中匹配具有相同主键的两个表中的数据

    我有两个表 其中包含有关人员的数据 df1 lt data frame id c 113 202 377 288 359 name c Alex Silvia Peter Jack Jonny 这为我提供了 id name 1 113 Al
  • 如何读取 R 中的每个 .csv 文件并将其导出到单个大文件中

    你好 我有以下格式的数据 101 20130826T155649 3 1 round 0 10552 180 yellow 12002 1 round 1 19502 150 yellow 22452 1 round 2 28957 130
  • 修改linux下的路径

    虽然我认为我已经接近 Linux 专业人士 但显然我仍然是一个初学者 当我登录服务器时 我需要使用最新版本的R 统计软件 R 安装在 2 个地方 当我运行以下命令时 which R I get usr bin R 进而 R version
  • 在 R 中使用逻辑 grep 抓取文本

    下午好 谢谢你帮我解答这个问题 我有兴趣抓取一组超过 5000 个 URL 的列表 我使用 lapply 和 readLines 使用下面的示例代码提取这些网页的文本 multipleURL lt c http dailymed nlm n
  • 如何从数据框中删除少于 5 个观察值的个体 [重复]

    这个问题在这里已经有答案了 为了澄清这个问题 我将简要描述数据 中的每一行data frame是一个观察值 列代表与该观察值相关的变量 包括 观察到什么个体 观察时间 观察地点等 我想排除 过滤观察值少于 5 个的个体 换句话说 如果 in
  • 通过 r markdown 中的循环创建代码片段

    如同如何使用R中的knitr创建一个包含代码块和文本的循环 https stackoverflow com questions 36373630 how to create a loop that includes both a code
  • R 中使用 `UseMethod()` 与 `inherits()` 来确定对象的类

    如果我需要根据 R 对象的类以不同的方式处理它们 我可以使用if and else在单个函数内 foo lt function x if inherits x list Foo the list else if inherits x num
  • R data.table fwrite 到 fread 空间分隔符并清空

    我在使用 fread 以 作为分隔符和散布的空白值时遇到问题 例如 这个 dt lt data table 1 5 1 5 1 5 make a simple table dt 3 V2 NA add a blank in the midd
  • 通过 R 中的数据子集执行计算

    我想对数据框的 PERMNO 列中的每个公司编号进行计算 其摘要可以在此处查看 gt summary companydataRETS PERMNO RET Min 10000 Min 0 971698 1st Qu 32716 1st Qu
  • 更改 pander 中的默认对齐方式 (pandoc.table)

    我目前正在切换到pander对于我的大部分时间knitr markdown格式化 因为它提供了如此出色的pandoc支持 我不太满意的一件事是默认的居中对齐 营销人员可能会喜欢它 但对于技术报告来说这是一个可怕的事情 使用的最佳选择Hmis
  • 如何在 R 中绘制一列与其余列的关系图

    我有一个数据集 其中 1 是时间 接下来的 14 个是幅度 我想在一张图表上散布所有大小与时间的关系 其中每个不同的列都是网格化的 分层在另一个之上 我想使用原始数据来制作这些图表 并单独制作它们 但只想执行此过程一次 数据集A 唯一的自变
  • 合并数据框而不重复行

    我想合并两个数据框 但如果有多个匹配项 则不想重复行 相反 我想总结一下那天的观察结果 来自 合并 提取两个数据框中与指定列匹配的行并将其连接在一起 如果有多个匹配项 则所有可能的匹配项各贡献一行 这是一些示例代码 days lt as d
  • 不同 R/lme4 版本的单一拟合结果不匹配

    我试图将 R 版本 3 5 3 lme4 1 1 18 1 的随机效应估计与 R 版本 4 1 1 lme4 1 1 27 1 相匹配 然而 当存在奇异拟合时 这两个版本之间的随机效应存在微小差异 我对奇点警告很满意 但令人费解的是不同版本
  • 如何绘制大时间序列(数千次给药次数/药物剂量)?

    我正在尝试绘制医院中如何开出单一药物的图解 在这个虚拟数据库中 我在 2017 年 1 月 1 日之后遇到了 1000 名患者 绘图的目的是了解该药物的给药模式 在接近入院 出院或患者住院期间是否更频繁 高剂量给药 Get random d

随机推荐

  • 如何重新运行 Apache Airflow 中所有失败的任务?

    我有一个包含数万个任务的 Apache Airflow DAG 运行后发现其中少数任务失败了 我修复了导致某些任务失败的错误 并且我想重新运行仅失败的任务 这SO帖子建议使用 GUI 来 清除 失败的任务 如何在 Airflow 上重新启动
  • Express app.set 与 app.use

    我意识到这可能是一个相当菜鸟的问题 并且有大量关于这件事的文章 但我很难找到对我来说清楚且有意义的解释 我在stackoverflow也没有找到这个问题 我的问题很简单 在express中 app set和app use之间有什么区别 我的
  • Crystal Reports - 值不能为空。参数名称:窗口

    我最近在尝试通过对话框将水晶报表表单加载到我的 WPF 应用程序中时遇到了一个不寻常的错误 该报表将显示为加载几秒钟 然后抛出一个错误 指出 值不能为空 参数名称 窗口 这让我很困惑 据我所知 水晶报表不使用名为 window 的参数 这是
  • Django 中的请求工厂中没有数据的 POST

    我正在将 django 应用程序从 1 x 移动到 2 2 运行单元测试时 出现有关将 None 作为数据发布的错误 以前的版本允许发None吗 有没有办法通过 RequestFactory 发布 None 我不想给出空字符串 因为需要验证
  • 使用两个字段的 Elasticsearch 日期范围查询

    我正在存储具有两个字段的文档 startDate 和 endDate 我想使用输入日期运行弹性查询并返回 startDate 和 endDate 包含该日期的所有文档 例如 doc1 source startDate 2015 01 01
  • 开窗器焦点,或活动

    我想在新选项卡中打开一个窗口 但是当我希望该开启页面处于活动状态 而不是新页面时 我该怎么做 非常感谢 我的代码是这样的 要将焦点集中到新窗口 但您不希望这样 并且默认情况下它可能会具有焦点 var newWindow window ope
  • 在数据框中应用函数时,dim(X) 必须具有正长度

    我正在尝试将此函数应用于数据框列 best recom lt function x n 1 y lt result2 x order result2 x n inds which result2 x y arr ind TRUE recom
  • 在 div 中垂直和水平居中文本

    我有一个 div 其中包含覆盖有文本的图形背景 我想使这个元素水平和垂直居中 但我无法让文本垂直居中 到目前为止 我有以下代码 div div img src buttonbackground png class stretch alt d
  • Visual Studio 2013 - Git - 获取远程分支

    我开始使用 Visual Studio 2013 和 Visual Studio Online 的内置 Git Team Explorer 工具 我非常熟悉如何通过 Git Shell 执行此操作 但似乎不知道如何通过 VS 2013 界面
  • 如何停止/退出 AWS Glue 作业 (PySpark)?

    我成功运行了一个 AWS Glue 作业 可以转换数据以进行预测 如果达到特定条件 我想停止处理并输出状态消息 正在运行 if specific condition is None s3 put object Body json str B
  • 应用程序被终止时是否可以收到 FCM 推送通知?

    我正在开发一个电子邮件应用程序 我希望用户在收到新电子邮件后立即收到推送通知 为此 我使用 FCM 我刚刚通过以下链接尝试使用 FCM 推送通知 为了测试 FCM 提供哪些功能 但我面临的问题是 当应用程序位于前台或后台时 设备会收到推送通
  • 为什么值类型创建在堆栈上而引用类型创建在堆上?

    编程语言书籍通常解释说 值类型是在堆栈上创建的 而引用类型是在堆上创建的 我的问题是为什么 我的问题是为什么 他们为什么要 解释 这一点 因为有时作者自己也不太了解 有时他们又懒得正确解释 事实却相当复杂 幸运的是 埃里克 利珀特 Eric
  • 使用 std::string 保存二进制数据以避免手动动态内存管理是否有效

    注意base64 decode in http www adp gmbh ch cpp common base64 html http www adp gmbh ch cpp common base64 html std string ba
  • 如何在rails下的webrick中设置access-control-allow-origin?

    我编写了一个小型 Rails 应用程序 通过 xmlhttprequests 向另一个站点提供内容 该站点将从另一个域运行 不可能让它们在同一服务器上运行 我了解我需要在 Rails 服务器上设置 access control allow
  • 结帐页面中的 Woocommerce 付款方式检测

    我正在使用 woocommerce 插件和 woocommerce 的 Braintree 扩展进行付款 我已启用 woocommerce Braintree 的卡和贝宝付款来结账 我试图弄清楚如何在用户实际结账和付款之前知道用户选择哪个支
  • 停止所有子元素的 jQuery 动画

    祝大家新年快乐 我只是想问是否有任何方法可以停止元素的所有子节点的 jquery 动画 我的意思是 如果我在文档中有一个下面的 html 结构 并且我已经对容器内的所有 div 应用了不同的动画 有些也在 queue false 等中 di
  • 哪种嵌入式消息传递系统 -> ActiveMQ 或 HornetQ [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我希望得到一些关于这两个消息系统中哪一个的一般性指示和意见 更容易管理 需要了解和避免的陷阱或神奇的东西
  • 如何在 JUnit 5 中参数化 beforeEach()?

    我使用 JUnit 5 作为我的测试运行程序 在设置方法中 我硬编码了 3 个参数 platformName platformVersion and deviceName 我有一个测试方法 应该测试各种组合 这意味着 当运行我的testLo
  • ffmpeg在特定时间混合音频

    我想将 2 个音频文件混合在一起 一个文件的长度为 2 分钟 另一个文件的长度为 10 秒 我希望两个文件混合 这样仍然可以听到两个声音 我希望这个 10 秒的剪辑恰好在 10 秒的 30 秒处出现 这样它就会在 40 秒处结束 我知道如何
  • R 中的 apply() 与用户定义函数

    我有一个数据框 其中有如此排列的选票和政党标签 dat lt data frame v1 c 25 0 70 v2 c 75 100 20 v3 c 0 0 10 l1 c pA pB l2 c pB pC pC l3 c pD 这样每一行