将 data.frame 列从因子转换为字符

2023-12-02

我有一个数据框。我们就这样称呼他吧bob:

> head(bob)
                 phenotype                         exclusion
GSM399350 3- 4- 8- 25- 44+ 11b- 11c- 19- NK1.1- Gr1- TER119-
GSM399351 3- 4- 8- 25- 44+ 11b- 11c- 19- NK1.1- Gr1- TER119-
GSM399352 3- 4- 8- 25- 44+ 11b- 11c- 19- NK1.1- Gr1- TER119-
GSM399353 3- 4- 8- 25+ 44+ 11b- 11c- 19- NK1.1- Gr1- TER119-
GSM399354 3- 4- 8- 25+ 44+ 11b- 11c- 19- NK1.1- Gr1- TER119-
GSM399355 3- 4- 8- 25+ 44+ 11b- 11c- 19- NK1.1- Gr1- TER119-

我想连接这个数据框的行(这将是另一个问题)。但看:

> class(bob$phenotype)
[1] "factor"

Bob的列是因子。因此,例如:

> as.character(head(bob))
[1] "c(3, 3, 3, 6, 6, 6)"       "c(3, 3, 3, 3, 3, 3)"      
[3] "c(29, 29, 29, 30, 30, 30)"

我不明白这一点,但我猜这些是(卡拉克塔库斯国王的宫廷)列的因素水平的指数bob?不是我需要的。

奇怪的是我可以浏览以下列bob用手,做

bob$phenotype <- as.character(bob$phenotype)

效果很好。而且,经过一些输入后,我可以获得一个 data.frame,其列是字符而不是因子。所以我的问题是:我怎样才能自动做到这一点?如何将包含因子列的 data.frame 转换为包含字符列的 data.frame,而无需手动遍历每一列?

额外问题:为什么手动方法有效?


继续关注马特和德克。如果您想在不更改全局选项的情况下重新创建现有数据框,可以使用 apply 语句重新创建它:

bob <- data.frame(lapply(bob, as.character), stringsAsFactors=FALSE)

这会将所有变量转换为“字符”类,如果您只想转换因子,请参阅下面是马雷克的解决方案.

正如@hadley 指出的,以下内容更加简洁。

bob[] <- lapply(bob, as.character)

在这两种情况下,lapply输出一个列表;然而,由于 R 的神奇特性,使用[]在第二种情况下保留 data.frame 类bob对象,从而消除了使用转换回 data.frame 的需要as.data.frame与论证stringsAsFactors = FALSE.

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

将 data.frame 列从因子转换为字符 的相关文章

  • sapply - 保留列名称

    我试图总结数据集中许多不同列 变量 的平均值 标准差等 我已经编写了自己的汇总函数 以准确返回我需要和正在使用的内容sapply立即将此函数应用于所有变量 它工作正常 但是返回的数据帧没有列名 我似乎甚至无法使用列号引用重命名它们 也就是说
  • 在 R 的 for 循环中创建动态命名对象并分配动态值

    我正在尝试创建一套动态命名的新对象 例如 temp2015 使用 for 循环 并存储动态值 具体来说 其他对象的名称 例如 Y2015 和 for 循环中使用的值 例如 2015 在动态命名的新对象中 我不确定为什么下面的代码不起作用 Y
  • R - 重塑 - 熔化错误

    我正在尝试融化数据框 但出现了这个奇怪的错误 有什么想法吗 str zx7 data frame 519 obs of 5 variables calday new Date format 2011 01 03 2011 01 04 201
  • 在 R 中提取 data.frames 列表的名称以及 data.frame 中的值

    在下面的代码中 j是 data frames 的命名列表 我想知道是否有办法 a 提取变量的数值 即one short and one long 在 data frames 内并附加它们的相关名称 即 AAA or BBB or CCC 到
  • 在 RMarkdown 输出到 PDF 时缩进而不添加项目符号点或编号

    之前有人问过如何在没有项目符号的情况下缩进文本 RMarkdown 中的点 但这是针对 HTML 输出的 在 RMarkdown 中缩进而不添加项目符号点或数字 https stackoverflow com questions 47087
  • data.table 抛出“找不到对象”错误[重复]

    这个问题在这里已经有答案了 我有一个数据表 library data table mydt lt data table index 1 10 当我在全局环境中尝试它时 我可以让它工作 但当我在调试器中或在包测试中使用它时却无法工作 问题是我
  • dplyr:连接中的 NSE (by)

    我很难弄清楚如何使用 dplyr left join 和 NSE 连接两个表 问题是我无法为 by 提供正确的值 我想我现在已经找到了解决方案 但感觉我正在以一种额外复杂的方式来做 因此 如果您知道更简单 更优雅的解决方案 请告诉我 这就是
  • 将 Python Pandas DataFrame 写入 Word 文档

    我正在努力创建一个使用 Pandas DataFrames 的 Python 生成的报告 目前我正在使用DataFrame to string 方法 但是 这会作为字符串写入文件 有没有办法让我实现这一目标 同时将其保留为表格 以便我可以使
  • ggplot:如何限制条形图中的输出,以便仅显示最频繁出现的情况?

    我几个小时以来一直在寻找这个简单的东西 但没有结果 我有一个数据框 其中一列为变量 国家 地区 我想要两件事以下 绘制最常见的国家 地区 最常见的位于顶部 找到部分解决方案EDIT找到完整的解决方案 gt gt 重点问题是根据频率限制条形图
  • 需要在R中跳过不同数量的行

    我正在使用以下代码来处理我的数据 但最近我意识到使用skip 27 在数据开始之前跳过存储在我的文件中的信息 不是一个好的选择 因为每个文件中要跳过的行数不同我的目标是读取存储在多个文件夹中的各种txt文件 并非所有文件都有相同的列数 列的
  • R:如何将字符/数字转为1,NA转为0?

    有没有一种简单的方法可以将列的字符 数字变为 1 将 NA 变为 0 这里有一些示例数据 我想将其应用于 3 4 structure list Item Code c 176L 187L 191L 201L 217L 220L Item x
  • 平滑连续 2D 点

    UPDATE 感谢 user20650和 李哲源Zheyuan Li 这是我想出的解决方案 Example data set df 3600 observations points Create a vector of the cumula
  • 如何在Rstudio中快速给几个单词加上引号?

    如何将 MI ID FL 转换为 MI ID FL 而无需键入每个双引号 Hmisc 包有一个函数 Cs 它将评估逗号分隔的文本是否带有引号 Cs MI ID FL becomes MI ID FL
  • 扩展数据框以使其具有与原始行中两列的范围一样多的行[重复]

    这个问题在这里已经有答案了 我有一个数据框如下 structure list symbol c u n v i a start c 9L 6L 10L 8L 7L end c 14L 15L 12L 13L 11L Names c symb
  • 如何动态地将 sliderInput 添加到闪亮的应用程序中?

    使用闪亮 我上传一个 csv 文件 并根据列名称 我需要向 ui 添加滑块 sidebarPanel fileInput file1 Upload CSV File to Create a Model accept c text csv t
  • R - 基于列名称的子集

    我的数据框有超过 120 列 变量 我想根据列名称创建子集 例如 我想创建一个子集 其中列名称包含字符串 心情 这可能吗 我一般用 SubData lt myData grep whatIWant colnames myData 我很清楚
  • StatET调试工具

    我想我只是很密集 但我似乎无法弄清楚如何在 Eclipse 中的 R 中使用调试工具 StatET 插件 有人有关于这个主题的任何提示或教程吗 StatET 2 00 现在对高级 可视化调试提供实验性支持 需要 Eclipse 3 6 或
  • 条件和分组 mutate dplyr

    假设我有以下每个抽屉库存增加的数据 gt socks year drawer nbr sock total 1990 1 2 1991 1 2 1990 2 3 1991 2 4 1990 3 2 1991 3 1 我想要一个二进制变量来标
  • 将整个包传递给雪簇

    我正在尝试并行化 使用snow parLapply 一些依赖于包 即除snow 调用函数中引用的对象parLapply必须使用显式传递给集群clusterExport 有没有办法将整个包传递到集群 而不必显式命名每个函数 包括用户函数调用的
  • 在闪亮的数据表中为每个单元格显示工具提示或弹出窗口?

    有没有什么方法可以为 r闪亮数据表中的每个单元格获取工具提示 有很多方法可以获取悬停行或列 但我找不到一种方法来获取行和列索引并为每个单元格显示不同的悬停工具提示 任何人都可以修改以下代码吗 library shiny library DT

随机推荐

  • 如何开始使用 directshow?

    我很难理解this 编译 运行 directshow 应用程序的最少设置是什么 我已经安装了 Visual C 2008 Express 你好世界会很好 RGS 设置您的环境 设置环境是一个繁琐的过程 因为 DirectShow 现在已经深
  • 如何判断api是否返回数据?

    如何检查我的 api 请求是否返回任何数据fetchData功能 我想返回boolean 或其他东西 给我的Index vue并在加载数据时显示加载程序 但是当加载数据时我想使用 this router push admin dashboa
  • 如何在窗口中安排 Oracle DBMS 作业

    我想创建一个 Oracle DBMS 作业 该作业在每个工作日 不是周末 的 09 00 到 20 00 每 10 分钟运行一次 我想知道我是否可以做到这一点FREQ作业定义的参数 否则我必须创建一个New Maintenance Wind
  • java中用数组常量定义的枚举

    我想知道是否可以用数组定义枚举作为常量 请参阅以下代码摘录 编译时不会出现非法表达式开始错误 有人可以帮助我吗 非常感谢 public enum Currency PENNY 1 one oneone NICKLE 5 five DIME
  • VSTS 安装后将代理状态从离线更改为在线

    我遇到 VSTS 代理状态离线的问题 我通过 cmd 在正确的池下安装了代理并在之后下载 但它仍然离线 请提供任何帮助吗 如果构建代理以交互模式运行 您需要通过运行来启动代理run cmd file 以管理员身份打开命令行 Run run
  • Visual Studio 减慢应用程序速度

    这是一个模糊的问题 但是对于 Visual Studio 减慢应用程序速度我能做些什么吗 如果我在 Visual Studio 之外运行可执行文件 它会以非常可接受的速度运行 如果我在启用调试器的情况下在 Visual Studio 中运行
  • .sheet:仅显示一次,然后不再显示

    使用Beta4 似乎该错误仍然存 在 以下视图序列 列表 其中点击列表条目可打开另一个列表 允许呈现ListView正好一次 这onDisappear从未被调用过 所以showModal标志发生变化 但不会触发重新显示ListView再次点
  • 如何从 Information_Schema.Columns 获取列的主键或键约束详细信息?

    如何从 Information Schema Columns 获取列的主键或键约束详细信息 我从 sys indexes 获取输出 但是在使用 Information Schema 加入查询时 我得到重复的记录 SELECT COLUMN
  • Git 推送仅适用于裸存储库?

    当我尝试 git push origin master 到外部磁盘上的远程存储库时 出现 git 警告 指出在下一个版本的 git 中 pusing 签出存储库将默认被拒绝 在外部磁盘上 我已签出项目 并且我想将我在计算机上所做的更改发送到
  • 在 PowerShell 2.0 中将编码设置为 ANSI

    我想使用参数将文件的编码设置为 ANSI Encoding of the Set Contentcmdlet 我尝试了这个 但它不起作用 Set Content LiteralPath filePath Encoding Default P
  • 当被测试者在 Perl 中使用 TAP 失败退出时,是否可以测试预期的错误?

    假设您正在运行一些单元测试 并且您想查看正在测试的方法 或脚本或函数或其他内容 是否失败 如何设置这样的测试 我希望有这样的事情 ok obj gt method my bad params DEATH method dies as exp
  • _=> 这个下划线在 Lambda 表达式中是什么意思?

    lambda 表达式是什么样的 gt expr mean 目的是什么 作为 lambda 的输入 Example int count 0 list ForEach gt count 1 这是当您不关心参数时使用的约定
  • 如何在 Android 中启用 GPS

    如何在 Android 中打开 GPS 关闭时检索当前位置 我测试了两种方法 private void turnGPSOn String provider Settings Secure getString getContentResolv
  • 重新排列方程

    我的 C 代码中有以下等式 k dl 1 0 pHold centre pHold pHold 2 0 centre centre square 2 0 centre 我知道浮点除法比乘法昂贵得多 我已经为此苦苦挣扎了一段时间 有没有什么办
  • 等待函数完成执行并使用结​​果

    这是场景 我有一个活动 A 它有一个按钮和文本视图 我有另一个类 B 其中包含执行各种功能的方法 创建类 B 的实例后 当单击按钮时 会从 A 调用它的公共方法之一 该方法需要一段时间来执行 它调用类中另一个耗时的私有方法 并返回类 B 的
  • 如何通过单击 JSP 页面中的超链接或按钮将当前项目传递给 Java 方法?

    我有一个 HTML 表 其中显示从数据库中获取的行 我希望用户能够通过单击每行旁边的删除超链接或按钮来删除行 当用户单击每个删除超链接或按钮时 如何在页面上调用 JSP 函数 以便我可以从数据库中删除该行的条目 到底应该做什么 a or a
  • 另一个 Java 泛型“不兼容类型”编译错误

    我正在编写一些代码并遇到了一个incompatible types编译错误 这就是我所拥有的 public interface Expression
  • 对于 Windows Server 2008,WebRequest 无法通过 TLS 1.1 / 1.2

    我正在运行一个 net 4 5 应用程序 该应用程序向仅支持 TLS 1 1 和 TLS 1 2 的外部服务器发出安全出站请求 当我从 Windows 8 8 1 主机运行该应用程序时一切正常 但在 Windows Server 2008
  • AngularJS - 一个简单的无限滚动

    我正在尝试编写一个与此处找到的类似的小型无限滚动 http jsfiddle net vojtajina U7Bz9 我已经能够显示前 5 条数据 但是在滚动时 其他项目不会显示 HTML div ul li i Title li ul d
  • 将 data.frame 列从因子转换为字符

    我有一个数据框 我们就这样称呼他吧bob gt head bob phenotype exclusion GSM399350 3 4 8 25 44 11b 11c 19 NK1 1 Gr1 TER119 GSM399351 3 4 8 2