我可以使用命令更改 R 脚本中的数据框名称吗?

问题描述 投票:0回答:1

我有两个数据框。一种称为 dfnew15,另一种称为 dfnew22。 我使用 dfnew15 数据框进行了一些简单的数据清理,大约有 100 行代码。每行代码的名称为“dfnew15$column1”“dfnew15$colum2”。

有没有办法将所有这些 dfnew15 更改为 dfnew22 而无需单击并手动更改它们?如果是这样,那将如何运作?我想确保我不会错过 22 数据框中 15 中的任何内容,但是手动执行我想要的操作很痛苦。

我想在质量上更改的代码行是以下内容的变体:

dfnew15$Town <- ifelse(dfnew15$Town == "Manhattan", "New York City", dfnew15$Town)
dfnew15$Town <- ifelse(dfnew15$Town == "Bay Area", "San Francisco", dfnew15$Town)
etc.

我想我也许可以复制 R 脚本文本,将其粘贴到 txt 文件中,将其导入到我的全局环境中,然后执行

txtfileAsDataFrame <- gsub('dfnew15', 'dfnew22', txtfileAsDataFrame)

导出 txtfileAsDataFrame,然后将更改后的文档复制到新脚本中,所有数据框都称为 dfnew22。

但不幸的是我只将更改后的数据作为值获取,而不是作为数据框。 另外,我猜想有一个比导入和导出 txt 文件更优雅的选择。

感谢您的帮助、提示或技巧!

r dataframe replace stringr gsub
1个回答
0
投票

非常感谢你们提供的答案。我现在和我的朋友交谈,他说“你为什么不直接按 ctrl+F 并替换为新脚本呢?”。我不知道这个功能,现在我觉得有点愚蠢。这对我来说实际上是最简单的选择,但我会研究您的建议,为未来的项目学习它们!谢谢!

- OP

其他选项包括:

  1. 创建一个函数来进行转换,然后在所需的数据帧上运行该函数(来源:Flick 先生
  2. 使用管道和 dplyr 语法将一堆数据转换链接在一起(因此,如果您需要更改它适用的数据帧,只需将代码从
    df1 |> foo() etc.
    更改为
    df2 |> foo() etc.
  3. 如果你有一堆代码正在转换 df1,但你希望它转换 df2,一种黑客方法可能是将 df1 重命名为 df3,然后将 df2 重命名为 df1,转换这个新的 df1,将名称改回来到 df2,然后将 df3 的名称更改回 df1

如果您要定期转换数据,或者要将其应用到许多数据帧,则第二个选项是最好的(来源:r2evans)。如果您只执行一次或两次,第一个选项是最好的。第三种选择可能是所有情况下最糟糕的选择😆

希望这有帮助!

© www.soinside.com 2019 - 2024. All rights reserved.