在读取 R 中的数据帧和列表时,如何使用元素匹配代替 apply 和 for-loop 函数?

2024-03-17

我刚刚在帖子中被介绍到“元素匹配”如何从函数内部用字符串命名子列表? https://stackoverflow.com/questions/76445543/how-to-name-sublists-with-character-strings-from-inside-a-function这似乎比我通常使用 for 循环读取列表/数据帧的方法要好得多apply()功能。有没有办法替代两者lapply()下面示例代码中的函数具有元素匹配([x %in% y])?我正在摆弄它,但还没有让它发挥作用。下面代码中我的“元素匹配”的单个示例突出显示为# ELEMENT MATCHING.

My createBucket()函数将三个列表拼凑在一起,但在lapply()部分代码为在中找到的所有元素创建子列表dfList$Elements 名称下的列表(并且也表示在seriesVector()函数)并为每个数据帧/矩阵创建小的 3 列数据帧/矩阵,行数由输入参数设置nbr_rows。它工作得很好,但我想知道是否有更好或更有效的方法来做到这一点,特别是使用“元素匹配”。

这篇文章底部的图像显示了运行的(正确且期望的)输出createBucket()功能。

Code:

balVector <- c(1000,1000,1000)
flowVector <- c(6,5,4)
seriesVector <- function() {c("DF_One", "DF_Two")}
dfList <- 
  list(
    Elements = 
      list(
        DF_One = c("Boy", "Cat"),
        DF_Two = c("Rat", "Bat")
      ),
    Shares = 
      list(
        DF_One = c(0.6,0.6,0.6,0.6,0.6),
        DF_Two = c(0.4,0.4,0.4,0.4,0.4)
      ),
    Rate = 
      list(
        DF_One = 0.10,
        DF_Two = 0.20
      )
  )

createBucket <- function(nbr_rows) {
  total <- list(
    Total = list(balVector = balVector,flowVector = flowVector)
  )
  
  series <- seriesVector()
  
  allocate <- list(Allocate = dfList$Shares[names(dfList$Shares) %in% series]) # ELEMENT MATCHING
  
  merged_list <- c(total, allocate, lapply(series, function(series_name) {
    setNames(
      lapply(dfList$Elements[[series_name]], function(element) {
        df <- as.data.frame(matrix(0, nbr_rows, 3))
        colnames(df) <- c('Inflow', 'Due', 'Outflow')
        df
      }),
      dfList$Elements[[series_name]]
    )
  }))
  
  names(merged_list) <- c(names(total), names(allocate), series)
  return(merged_list)
}

createBucket(3)

None

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

在读取 R 中的数据帧和列表时,如何使用元素匹配代替 apply 和 for-loop 函数? 的相关文章

  • 如何在 Ubuntu 9.10 上安装 R 软件包 rgl? [复制]

    这个问题在这里已经有答案了 可能的重复 安装 rgl 时出现问题 https stackoverflow com questions 7473067 problem installing rgl 我正在尝试在 Ubuntu 9 10 上安装
  • 将鼠标悬停在 R 中的传单时弹出?

    我的传单地图看起来像这样 library sp library leaflet circleFun lt function center c 0 0 diameter 1 npoints 100 r diameter 2 tt lt seq
  • R中特定小时和月份的数据框中的平均值

    我一直在网上搜索 但还没有找到解决这个可能很简单的问题的方法 这是使用库 xts 的半小时数据 library xts data xts lt as xts 1 nrow data as POSIXct 2007 08 24 17 30 0
  • 如何根据列表中的先前值过滤Haskell中的列表元素?

    我正在努力在 Haskell 中创建一个函数 该函数根据列表中前一个元素的条件过滤列表的数字 Example 前一个数字是 2 的倍数 myFunction 1 2 5 6 3 expected output 5 3 我知道如何申请filt
  • 将命名参数传递给调用非 mutate 函数的函数

    我正在尝试做一些非常类似的事情here https community rstudio com t passing named list to mutate and probably other dplyr verbs 2553 11 本质
  • 使用 cut 为时间变量创建 24 个类别

    在这里 我导入数据 对其进行一些操作 这可能不是问题 修复所在 前两行设置了我的剪切参数 lab var num lt 0 24 times var lt c 0 100 200 300 400 500 600 700 800 900 10
  • 如何将 HashMap> 存储在列表中?

    我的哈希图将字符串存储为键 将数组列表存储为值 现在 我需要将其嵌入到列表中 也就是说 它将采用以下形式 List
  • R: Knit 给出 SQL-chunk 错误

    我想编织 R markdown 的输出 其中包括几个 SQL 块 但是 如果我开始编织 就会收到错误消息 Line 65 Error in eval expr envir enclos object pp dataset not found
  • ggplot2 每个方面的不同因子顺序

    我正在尝试创建一个克利夫兰点图 在本例中为 J 和 K 给出两个类别 问题是元素 A B C 都在这两个类别中 所以 R 一直放屁 我做了一个简单的例子 x lt c LETTERS 1 10 LETTERS 1 3 LETTERS 11
  • 提取字符串中最后一个句点后的文本[重复]

    这个问题在这里已经有答案了 我意识到这个问题对于大多数正则表达式大师来说可能看起来非常简单 但是回顾类似的问题并没有得出解决方案 我有一个电子邮件地址向量 称为email并希望在每个最后一个句点之后提取文本 举例来说 email lt c
  • 从 R 运行 powershell 命令:表达式或语句中出现意外标记

    我尝试了以下命令 在 powershell 窗口中有效 system powershell command Get ChildItem Filter html Where Object LastWriteTime ge 11 12 2021
  • 使用 KnitR 在 R 中以编程方式创建 Markdown 表

    我刚刚开始了解 KnitR 以及使用 Markdown 生成 R 文档和报告 这对于我与工作有关的许多日常报告来说似乎是完美的 然而 我没有看到的一件事是使用 Markdown 格式打印数据框和表格的简单方法 有点像xtable 但使用 M
  • 使用ggmap在地图上绘制等高线

    我有洛杉矶港地区的颗粒物浓度差异 之后 之前 我正在尝试使用 ggmap 在地图上绘制浓度等值线 但结果看起来很不同 我使用的代码如下所示 数据位于代码下方 Code 安装 packages ggmap library ggmap PM r
  • Python 中的数字列表求和[重复]

    这个问题在这里已经有答案了 给定一个数字列表 例如 1 2 3 4 5 我如何计算它们的总和 1 2 3 4 5 我如何计算它们的成对平均值 1 2 2 2 3 2 3 4 2 4 5 2 问题一 要对数字列表求和 请使用sum https
  • 使用 glmnet 和 lm 的普通最小二乘法

    这个问题是在stackoverflow com q 38378118 https stackoverflow com q 38378118但没有得到满意的答复 0 的 LASSO 相当于普通最小二乘法 但对于以下情况似乎并非如此glmnet
  • 删除重复行并计算 R 中数据帧的平均值

    我提供了一个我正在处理 gt 1 000 列和 gt 200 行的大型数据框的小示例 我想让每列的每个重复行成为单行而不是两行 同时取与第 1 列相关的每个值的平均值 平均值的列是第 6 8 列等 Col1 Col2 Col3 Col4 C
  • Python:我可以修改元组吗?

    我有一个 2 D 元组 实际上我以为 它是一个列表 但错误说它是一个元组 但无论如何 该元组的形式为 浮点数 val prod id 现在我有一个字典 其中包含 key gt prod id 和 value prod name 现在 我想将
  • 连接系统 R 中的两个或多个数据帧

    我的问题是如何在 R 系统中连接两个或多个数据帧 例如 我有两个数据框 first x y z 1 3 2 4 2 4 5 7 3 5 6 8 second x y z 1 1 1 1 2 4 5 7 我需要这个 x y z 1 3 2 4
  • rbind 命名向量到不同长度的矩阵

    我正在尝试将命名向量绑定到矩阵上 命名向量的长度与矩阵不同 gt m lt matrix data c 1 2 3 nrow 1 ncol 3 dimnames list c c column 1 column 2 column 3 gt
  • 读取 CSV 文件单列的更快方法

    我正在尝试阅读一个列CSV文件至R尽快 我希望将标准方法将列放入 RAM 所需的时间减少 10 倍 我的动机是什么 我有两个文件 一个叫Main csv这是 300000 行和 500 列 其中一个称为Second csv即 300000

随机推荐

  • 将通用列表数组绑定到 GridView

    您好 我有一个返回 问题 数组的列表 我的问题是如何将其绑定到网格视图 当我尝试调用 Question Ordinal 时 我发现它在数据源中不存在 我正在使用以下代码 GridView1 DataSource myList GetQ Gr
  • 堆栈在缓存中吗?

    在现代计算机中 我知道当前代码区域位于高速缓存中 然而 在许多计算机语言实现中 本地 自动 变量将位于堆栈上 因此会对堆栈进行大量内存访问 在正常架构中 堆栈是否位于另一个缓存中 如果不是 则假设堆栈可以重新定位到 本地 即非常靠近当前代码
  • chrome 扩展:页面完成加载 javascript 后运行脚本

    当页面完成加载时 这根本不会触发 基本上 当我单击浏览器操作按钮时 它会触发它 并且在页面加载时 它将运行一个脚本 在我的background js中 var toggle false chrome browserAction onClic
  • 如何使用 JMeter 发送动态 URL 参数

    我想将 URL PATH 发送为 controller 1 1 controller 2 2 start 但是参数 2controller 2是动态的 如何发送该参数 使参数成为变量 controller 2 controller2 par
  • 使用 swift for Mac 应用程序获得管理权限

    我正在编写一个软件 需要经常以root权限运行命令 现在 我通过询问用户一次密码 保存密码 然后将该密码提供给NSAppleScript作为参数with administrator privileges 这显然对用户来说确实不安全 因为有人
  • 使用 Obj-C 的帖子发送 amp (&)

    我正在发送包含文本 数字和数据的帖子 数字和数据工作正常 但我在文本方面遇到问题 因为它可能包含与号 例如 page php text Hello World Space 现在我发现 被服务器接收到 但读起来就像一个新变量开始一样 所以它看
  • pyqtdeploy:无法检测到 MSVC2015 或 MSVC2017

    我第一次尝试 pyqtdeploy 遵循文档 https www riverbankcomputing com static Docs pyqtdeploy demo html 运行 build demo py 时出现以下错误 C User
  • 将phoneGap 与本机iOS 应用程序集成

    我正在尝试创建一个使用本机功能和phoneGap 框架组合的应用程序 本机应用程序有一个按钮 单击该按钮后 phoneGap ui 必须添加到视图中 有什么办法可以实现这一点吗 有相同的教程吗 是的 这是可能的 尽管您可能会让自己陷入一些头
  • 如何确定我是否在 Android Wear 中运行?

    我在 Android Studio 中有一个移动和穿戴模块 它们都使用 核心 代码库 在该核心代码中 我如何确定我的代码是否在 移动 模块的 穿戴 上运行 我应该使用屏幕尺寸吗 尽管这没有正式记录 据我所知 您可以通过调用以下任一方法来确定
  • 使用 pyautogui 输入 unicode 字符串

    我正在创建一个自动测试应用程序pyautogui库 我想用typewrite将文本输入到表单中的方法 但我的一些输入字符串中含有 unicode 字符 例如 N st 根据文件typewrite只能按单字符键 所以它只是忽略了 特点 您能建
  • 使用 EC2 + Rails + Nginx + Capistrano 重新启动时 Puma 重新启动失败

    我已成功使用 capistrano 将我的 Rails 应用程序部署到 Ubuntu EC2 部署时一切都运行良好 Rails 应用程序名称是 deseov12 我的问题是 Puma 不会在启动时启动 这是必要的 因为生产 EC2 实例将根
  • 如何为其他类成员函数编写模板包装方法?

    我尝试为具有不同参数的不同函数创建一个模板化包装器 设置是一个类A基本实现有两种方法foo and bar 另一堂课B应包装这些方法并添加新功能 以下链接中的解决方案对于非类函数非常有效 c 11 模板化包装函数 https stackov
  • 如何使用 JavaScript 添加到现有的 dataTransfer.files 对象?

    我正在创建一个拖放文件上传区域 当我一次上传多个文件时 它可以工作 但我需要它能够支持分多个阶段上传 我知道下面的问题是我每次都设置文件 但我无法找出每次调用该方法时将更多文件添加到 dFiles 的正确方法 var dFiles var
  • openssh/opensshportable,我应该从内存中提取哪个密钥?

    我想在 OpenNebula 等虚拟环境中解密 ssh 流量 为此 我从 openssh opensshportable 代码的 key derive keys 函数中提取了 6 个 ssh 密钥 IV 加密密钥和完整性密钥 如果我跟踪服务
  • 如何向 PHP SoapVar 对象添加属性?

    如何向 PHP SoapVar 对象添加属性 PHP5 SoapClient SoapVar 我有一个 SOAP 客户端请求情况 其中有重复的部分 答案 每个部分都有一个问题和选择 这是测验评分过程的一部分 根据我在 PHP5 SOAP 客
  • 如何使用 C# 驱动程序更新 MongoDB 中数组子文档中包含的数组子文档中的字段?

    我在 MongoDB 中有一个文档集合 其结构如下 有多个容器文档 每个包含Sessions 每个会话包含1个Order 每个Order包含多个Item Sessions ID 1882a092 d395 45d1 b36b e2fa3df
  • std::decay 和 std::remove_cvref 之间的区别?

    Does std remove cvref代替std decayC 20之后 From 这个链接 https github com thecppzoo zoo issues 7 我无法理解这意味着什么 C 20将有一个新特征std remo
  • 使用 Hammer.js 进行事件委托

    我如何在 Hammer js 中使用纯 JavaScript 进行 jQuery 风格的事件委托 例如 Hammer document on tap item function console log tapped 这是直接可行的还是我必须
  • Java 11 + Chrome/Firefox = TLS 解密错误

    我目前正在将一些服务器软件从 Java 8 迁移到 Java 11 除了当我的服务器在 Java 11 且仅 11 上运行时 TLS 连接被拒绝这一事实之外 一切工作正常 也就是说 在 Java 10 及以上版本上运行时一切正常 一旦我切换
  • 在读取 R 中的数据帧和列表时,如何使用元素匹配代替 apply 和 for-loop 函数?

    我刚刚在帖子中被介绍到 元素匹配 如何从函数内部用字符串命名子列表 https stackoverflow com questions 76445543 how to name sublists with character strings