R 中的 Reduce() 对相似变量名导致错误

2024-03-22

我有 19 个由 lapply 和 split 操作生成的嵌套列表。 这些列表的形式如下:

#list1
Var col1 col2 col3
A    2     3    4
B    3     4    5

#list2
Var col1 col2 col3

A    5    6     7
B    5    4     4

......

#list19

Var col1 col2 col3

A    3   6    7
B    7   4    4

我已经能够将列表与

merge.all <- function(x, y) merge(x, y, all=TRUE, by="Var")
out <- Reduce(merge.all, DataList)

然而,由于其他列的名称相似,我收到错误。

如何将列表的名称连接到变量名称,以便得到如下所示的内容:

Var list1.col1 list1.col2 list1.col3  ..........   list19.col3
 A    2          3          4                            7 
 B    3          4          5          ..........        4

我确信有人会想出一个更好的解决方案。但是,如果您正在寻求快速而肮脏的解决方案,那么这似乎可行。

我的计划是在合并之前简单地更改列名称。

#Sample Data
df1 <- data.frame(Var = c("A","B"), col1 = c(2,3), col2 = c(3,4), col3 = c(4,5))
df2 <- data.frame(Var = c("A","B"), col1 = c(5,5), col2 = c(6,4), col3 = c(7,5))
df19 <- data.frame(Var = c("A","B"), col1 = c(3,7), col2 = c(6,4), col3 = c(7,4))

mylist <- list(df1, df2, df19)
names(mylist) <- c("df1", "df2", "df19") #just manually naming, presumably your list has names


## Change column names by pasting name of dataframe in list with standard column names. - using ugly mix of `lapply` and a `for` loop:

mycolnames <- colnames(df1)
mycolnames1 <- lapply(names(mylist), function(x) paste0(x, mycolnames)) 


for(i in 1:length(mylist)){
  colnames(mylist[[i]]) <- mycolnames1[[i]]
  colnames(mylist[[i]])[1] <- "Var" #put Var back in so you can merge
}



## Merge
merge.all <- function(x, y)
  merge(x, y, all=TRUE, by="Var")

out <- Reduce(merge.all, mylist)
out


#  Var df1col1 df1col2 df1col3 df2col1 df2col2 df2col3 df19col1 df19col2 df19col3
#1   A       2       3       4       5       6       7        3        6        7
#2   B       3       4       5       5       4       5        7        4        4

就是这样——它可以工作,但是非常丑陋。

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

R 中的 Reduce() 对相似变量名导致错误 的相关文章

随机推荐

  • Scala 展平 String 和 List[String] 的列表

    需要一些有关 Scala 展平的帮助 我有一个清单String and List String 例子 List I can t List do this 预期结果 List I can t do this 我做了很多实验 最紧凑的解决方案是
  • 我可以通过使用多线程更快地分配内存吗?

    如果我创建一个保留 1kb 整数数组 int 1024 的循环 并且希望它分配 10000 个数组 我可以通过从多个线程运行内存分配来使其更快吗 我希望它们在堆中 假设我有一个多核处理器来完成这项工作 我已经尝试过这个 但它降低了性能 我只
  • 未找到成员“HelpURL”的反序列化错误

    获取异常 未找到成员 HelpUrl 在尝试反序列化对象时 下面是我试图执行的代码 Log objectLog Log JsonConvert DeserializeObject JObject Parse msg Body Message
  • 检查列表是否包含 R 中的另一个列表

    我想检查一个列表 或等效的向量 是否包含在另一个列表中 而不是它是否是其子集 让我们假设我们有 r lt c 1 1 s lt c 5 2 t lt c 1 2 5 该函数的行为应如下 is contained r t 1 FALSE as
  • 在 SwiftUI (tvOS) 中获取按钮的 onFocusChange 回调

    The onFocusChange关闭于focusable onFocusChange 修饰符允许我在子视图聚焦时为父视图设置属性 如下所示 struct ContentView View State var text String var
  • 如何在 Windows Azure 中为 Blob 存储配置 CORS 设置

    我在天蓝色存储中创建了几个容器 并将一些文件上传到这些容器中 现在我需要授予对容器 blob 的域级别访问权限 所以我从代码级别进行了尝试 如下所示 CloudStorageAccount storageAccount CloudStora
  • 如何在具有美丽汤的div中选择一个div类?

    我在 div 标签内有一堆 div 标签 div class foo div class bar I want this div div class unwanted Not this div div div class bar Don t
  • 如何在 Python 中获取输出的大小(以字节为单位)

    首先 我要感谢所有帮助过我的人 环境 我在 Windows 8 操作系统中使用 Python v2 7 我正在使用 COM4 通过在 Python 代码中发送一些命令来与机器人对话 我发送命令getversion到机器人并假设获得一堆数据
  • 验证 OpenSSL 中证书的域

    我需要使用 C land OpenSSL 验证 X509 证书的域 我的理解是 该库不会为我执行此操作 并且我必须大致实现以下算法 如果 subjectAlternativeName 扩展的 dnsName 字段存在 则设置name到那个值
  • 如何强制关闭新行上的 HTML 标签?

    在 VS Code 中 我广泛使用 Beautify 但让我感到不安的是 关闭标签总是与 浮动 文本或自关闭标签位于同一行 例如 在 Beautify 之前 div class wrap img src wp content uploads
  • 以编程方式缩小网页

    我们构建了一个在 19 英寸屏幕上完美运行的 Web 应用程序 在 Firefox 上作为 KIOSK 运行 它包含大量图像和围绕这些图像放置的内容文本 在我们将设备更改为 18 5 英寸屏幕之前 它运行得很好 现在 它周围有滚动条 内容和
  • python distutils:访问已编译扩展的名称

    我使用 distutils 编译一个基于 swig 的扩展模块 python setup py build ext产生文件 my module ext cpython 32m so 来自一个 c and a i文件 这个名称似乎取决于所使用
  • 在 JavaScript 中使用全局变量

    我该怎么做呢 我的代码是这样的 var number null function playSong artist title song id alert old number was number var number 10 alert n
  • 如何在grails shiro中使用缓存权限

    每次我打电话subject isPermitted 它向数据库发送一条sql 我怎样才能缓存它 有什么例子吗 谢谢 我阅读了 shiro grails 插件的文档 但无法解决它 数据源 hibernate cache use second
  • 删除 Ruby 中的换行符

    我在删除时遇到问题 n and r标签 当我使用双引号时 它工作正常 否则它会离开 With gsub 如果没有双引号 它根本不起作用 为什么 Remove n delete n result Remove Remove n delete
  • 调用 MVC4 Razor DisplayTemplate,生成 HTML,但未渲染到浏览器

    我有一个迭代集合并调用的视图DisplayFor 对于集合中的每个元素 我需要手动迭代 而不是将集合传递给 DisplayFor 以便告诉模板是否应该在列表中绘制中断 列表中的项目只有两种类型 按它们排序 因此我只需要显示此中断一次 我的模
  • 具有高级混合索引的 Numpy 子数组分配

    原问题 当我尝试分配数组的某些元素时 我收到一条非常奇怪的错误消息 我使用切片和一组索引的组合 请参阅以下简单示例 import scipy as sp a sp zeros 3 4 5 b sp ones 4 5 I sp array 0
  • 本地主机和带有 Auth0 的 CORS 不允许我登录

    我正在制作一个 React 应用程序并尝试使用 Auth0 进行身份验证 尝试登录后 它返回 XMLHttpRequest 无法加载https my domain auth0 com 用户名密码 登录 https my domain aut
  • 了解 matplotlib:plt、figure、ax(arr)?

    我并不是很陌生matplotlib我非常羞愧地承认我一直使用它作为尽可能快速 轻松地获得解决方案的工具 所以我知道如何获得基本的情节 子情节和东西 并且有相当多的代码可以不时地重用 但我没有 深入的 呃 知识 matplotlib 最近我想
  • R 中的 Reduce() 对相似变量名导致错误

    我有 19 个由 lapply 和 split 操作生成的嵌套列表 这些列表的形式如下 list1 Var col1 col2 col3 A 2 3 4 B 3 4 5 list2 Var col1 col2 col3 A 5 6 7 B