将数据框中的因子转换为整数

2023-12-28

我有以下代码

anna.table<-data.frame (anna1,anna2)
write.table<-(anna.table, file="anna.file.txt",sep='\t', quote=FALSE) 

我的表最后包含如下数字

chr         start    end      score
chr2      41237927  41238801    151
chr1      36976262  36977889    226
chr8      83023623  83025129    185

等等......

之后我试图只获取符合某些标准的值,例如分数小于特定值

所以我正在做以下事情

anna3<-"data/anna/anna.file.txt"
anna.total<-read.table(anna3,header=TRUE)
significant.anna<-subset(anna.total,score <=0.001)

Error: In Ops.factor(score, 0.001) <= not meaningful for factors

所以我想问题是我的表有因子而不是整数

我猜我的 anna.total$score 是一个因素,我必须将其设为整数

如果我正确阅读 as.numeric 可能会解决我的问题

我正在阅读有关 as.numeric 函数的内容,但我不明白如何使用它

那么您能给我一些建议吗?

先感谢您

此致 安娜

PS:我尝试了以下方法

anna3<-"data/anna/anna.file.txt"
anna.total<-read.table(anna3,header=TRUE)
anna.total$score.new<-as.numeric (as.character(anna.total$score))
write.table(anna.total,file="peak.list.numeric.v3.txt",append = FALSE ,quote = FALSE,col.names =TRUE,row.names=FALSE, sep="\t")

anna.peaks<-subset(anna.total,fdr.new <=0.001)
Warning messages:
1: In Ops.factor(score, 0.001) : <= not meaningful for factors

我又遇到同样的问题......


With anna.table(顺便说一下,它是一个数据框,表格是别的东西!),最简单的方法就是这样做:

anna.table2 <- data.matrix(anna.table)

as data.matrix()将因子转换为其基础数字(整数)水平。这适用于仅包含数字、整数、因子或其他可以强制为数字的变量的数据框,但任何字符串(字符)都会导致矩阵变成字符矩阵。

如果你想anna.table2成为数据框,而不是矩阵,那么您可以随后执行以下操作:

anna.table2 <- data.frame(anna.table2)

其他选项是将所有因子变量强制为其整数级别。这是一个例子:

## dummy data
set.seed(1)
dat <- data.frame(a = factor(sample(letters[1:3], 10, replace = TRUE)), 
                  b = runif(10))

## sapply over `dat`, converting factor to numeric
dat2 <- sapply(dat, function(x) if(is.factor(x)) {
                                    as.numeric(x)
                                } else {
                                    x
                                })
dat2 <- data.frame(dat2) ## convert to a data frame

这使:

> str(dat)
'data.frame':   10 obs. of  2 variables:
 $ a: Factor w/ 3 levels "a","b","c": 1 2 2 3 1 3 3 2 2 1
 $ b: num  0.206 0.177 0.687 0.384 0.77 ...
> str(dat2)
'data.frame':   10 obs. of  2 variables:
 $ a: num  1 2 2 3 1 3 3 2 2 1
 $ b: num  0.206 0.177 0.687 0.384 0.77 ...

但是,请注意,仅当您需要底层数字表示时,上述方法才有效。如果您的因子本质上具有数字级别,那么我们需要更聪明地将因子转换为数字,同时保留级别中编码的“数字”信息。这是一个例子:

## dummy data
set.seed(1)
dat3 <- data.frame(a = factor(sample(1:3, 10, replace = TRUE), levels = 3:1), 
                   b = runif(10))

## sapply over `dat3`, converting factor to numeric
dat4 <- sapply(dat3, function(x) if(is.factor(x)) {
                                    as.numeric(as.character(x))
                                } else {
                                    x
                                })
dat4 <- data.frame(dat4) ## convert to a data frame

注意我们需要怎么做as.character(x)在我们这样做之前首先as.numeric()。在我们将级别信息转换为数字之前,额外的调用会对级别信息进行编码。要了解为什么这很重要,请注意以下内容dat3$a is

> dat3$a
 [1] 1 2 2 3 1 3 3 2 2 1
Levels: 3 2 1

如果我们只是将其转换为数字,我们会得到错误的数据,因为 R 转换了底层代码

> as.numeric(dat3$a)
 [1] 3 2 2 1 3 1 1 2 2 3

如果我们首先将因子强制转换为字符向量,然后转换为数字向量,我们将保留原始信息而不是 R 的内部表示

> as.numeric(as.character(dat3$a))
 [1] 1 2 2 3 1 3 3 2 2 1

如果您的数据类似于第二个示例,那么您不能使用简单的data.matrix()技巧与应用相同as.numeric()直接到因子,如第二个示例所示,这不会保留原始信息。

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

将数据框中的因子转换为整数 的相关文章

  • 使用starts_with() 将 NA 替换为 0

    我正在尝试替换我的一组特定列的 NA 值tibble 这些列都以相同的前缀开头 所以我想知道是否有一种简洁的方法来使用starts with 函数从dplyr包可以让我做到这一点 我已经看到了有关 SO 的其他几个问题 但是它们都需要使用特
  • 在 R 中将时间间隔数据扩展为天数

    假设我有如下所示的数据 interval id indiv id role start date end date 1 1 A 2006 05 01 2006 06 16 2 1 B 2006 06 16 2006 10 16 3 1 A
  • 使用管道语法处理模型列表

    我经常喜欢拟合和检查与 R 数据框中的两个变量相关的多个模型 我可以使用如下语法来做到这一点 require tidyverse require broom models lt list hp exp cyl hp cyl map df m
  • R texreg:如何选择要显示的 gof 统计信息?

    我正在使用 texreg 通过 plm 生成面板回归的输出表 我想抑制所有 gof 统计数据的输出 这不是显示 R2 adj R2 和 N 我只想显示 adj R2 有谁知道一个简单的方法来做到这一点 好吧 这实际上很简单 只需在调用中包含
  • 如何从R中的日期中提取月份

    我正在使用lubridate封装并应用month从日期中提取月份的函数 我在日期字段上运行了 str 命令 得到了 Factor w 9498 levels 01 01 1979 01 01 1980 5305 1 1 1 1 1 1 1
  • rpart是自动剪枝吗?

    Is rpart自动修剪 生成的决策树rpart比具有自动修剪功能的 Oracle Data Mining 生成的级别要多得多 否 但拟合函数的默认值可能会 提前 停止分割 对于 早期 的某些定义 See rpart control对于您可
  • 聚合日期时间以总结在特定条件下花费的时间

    我很困惑我应该如何继续 我下面有一些虚拟数据 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
  • 将日期时间字符串转换为 Date 类

    我有一个带有日期时间字符列的数据框 当我使用as Date 除了少数实例之外 我的大多数字符串都被正确解析 下面的示例有望向您展示发生了什么 my attempt to parse the string to Date uses the s
  • ggplot 图例标签内的希腊字母、符号和换行符

    我在尝试着 有换行符 自动或强制 对齐文本 左对齐或左右对齐 有希腊字母和百分号 在 gglot 图例标签内 我尝试了几种方法 但我似乎无法将我读到的所有技巧结合起来 我可以通过插入来换行 n进入标签 但这似乎不适用于希腊字母 不适用于图例
  • 使用自定义渐变填充直方图箱

    我想在 R 和 ggplot2 中创建一个直方图 其中根据连续的 x 值填充箱 大多数教程仅通过离散值或密度 计数进行着色 下列的这个例子 https stackoverflow com questions 40284227 how to
  • R闪亮主面板显示样式和字体

    我正在学习闪亮的应用程序 并且有一些关于调整布局的基本问题 特别是样式和字体 希望得到指点或明确的答案 谢谢 考虑一个基本的输入输出应用程序 用户在 sidebarPanel 中输入数据 然后在 mainPanel 中反应性地输出结果 如何
  • 将所有分号替换为空格 pt2

    我尝试对 2000 多行关键字的列表运行文本分析 但它们的列出方式如下 战略 管理风格 组织 所以当我使用 tm 删除标点符号时 它就变成了 组织的战略管理风格 我认为这在某种程度上破坏了我常用术语的分析 我尝试过使用 vector lt
  • 将 pandas 数据帧拆分为子数据帧列表的最快方法

    我有一个大数据框df我有完整的清单indices中的独特元素df index 我现在想创建一个由元素索引的所有子数据帧的列表indices 具体来说 list df df loc x for x in indices 运行这个命令需要很长时
  • R data.table 多个条件连接

    我设计了一种解决方案 用于从两个单独数据表的多个列中查找值 并添加基于新列的值计算 多个条件比较 代码如下 它涉及在计算两个表中的值时使用 data table 和联接 但是 这些表没有联接在我正在比较的列上 因此我怀疑我可能无法获得 da
  • R:ifelse 中的字符串列表

    我正在寻找与 MySQL 中的 where var in 语句类似的东西 我的代码如下 data lt data frame id 10001 10030 cc1 rep c a b c 10 attach data data new lt
  • 如何读取 R 中的每个 .csv 文件并将其导出到单个大文件中

    你好 我有以下格式的数据 101 20130826T155649 3 1 round 0 10552 180 yellow 12002 1 round 1 19502 150 yellow 22452 1 round 2 28957 130
  • zsh:未找到命令:使用 Big Sur Mac 的终端上的 R

    我从官方 cran 网站安装了 R 我可以从 Rstudio 运行 R 但是当我尝试从终端使用 R 时 我得到以下结果 base ege Eges MBP R zsh command not found R base ege Eges MB
  • 在 R 中使用逻辑 grep 抓取文本

    下午好 谢谢你帮我解答这个问题 我有兴趣抓取一组超过 5000 个 URL 的列表 我使用 lapply 和 readLines 使用下面的示例代码提取这些网页的文本 multipleURL lt c http dailymed nlm n
  • 通过 VB.NET 创建/编辑文本文件

    如何在 VB NET 中编写以下算法的代码 Procedure logfile if C textfile txt exist then open the textfile else create the textfile end if g
  • 按组计算连续行中的值之间的差异

    这是我的一个df 数据框 group value 1 10 1 20 1 25 2 5 2 10 2 15 我需要按组计算连续行中的值之间的差异 所以 我需要一个结果 group value diff 1 10 NA because the

随机推荐

  • 间歇性 Cloudfront CDN 故障(监控)- CDN 故障转移

    在过去的 2 个月中 我遇到了 Amazon Cloudfront 间歇性故障 每周 2 3 次 页面将从我的 Web 服务器加载 但来自 CDN 的所有资产当时都会阻塞等待几分钟 我确认使用来自不同数据中心的 shell 卷曲 有些可以工
  • 在打字稿中为嵌套命名空间创建类型

    我正在尝试为已经存在的库创建类型定义 并且有问题正确描述其结构 问题是嵌套的命名空间 在 JavaScript 中 我的方法的全名如下所示 NameSpace1 NameSpace2 NameSpace3 MethodName 但我无法创建
  • Nodejs,获取文件的文件类型

    六年前的问题 Node js 文件系统获取文件类型 2012 年左右的解决方案 https stackoverflow com questions 10431845 有一个更好的答案 但过时的答案是当时正确的答案 因此 问题是需要最新的解决
  • 是否可以使用带有 TLS 1.2 的 jTDS 连接到 Azure SQL Server?

    我们的 Java 应用程序使用 jTDS 1 3 1 连接到 SQL Server 它工作正常 直到客户端尝试将数据库放在 Azure SQL 上 连接失败 出现以下异常 java sql SQLException 原因 由于客户端 TLS
  • scipy 未优化并返回“由于精度损失不一定实现所需的错误”

    我有以下代码尝试最小化对数似然函数 usr bin python import math import random import numpy as np from scipy optimize import minimize def lo
  • 在 Rails 中读取 cookie 值

    我在 JavaScript 中成功设置了 cookie var date new Date date setTime date getTime 1 24 60 60 1000 one day expiration date var expi
  • 缺少父资源的 REST API 代码/消息

    当请求构成另一个资源一部分的资源时 我正在寻找一些有关正确响应代码和消息的指导 例如 一个 GET 请求 用户 id 如果用户不存在 则会返回 404 并显示未找到用户资源的消息 我的问题是 当找不到用户资源时 以下应该返回什么 用户 id
  • Javascript继承思想(第2部分)

    好吧 我第一次试图解释我在做什么的尝试惨遭失败 我基本上是在复制 Crockford 的 Object create 除了私有变量 如果您查看此处接受的答案javascript中如何继承类 https stackoverflow com q
  • Django-ckeditor 在 html 中无法正确显示

    我有一个小问题 我在管理部分安装了 Django ckeditor 我可以在管理中完美地使用它 但是当我在 Html 页面上显示时 它无法正确显示 我将放置一些图像以获得更好的视觉效果 Here is my admin ckeditor w
  • Hive - 对分区的查询不返回任何内容

    我有一个按特定开始日期 ds 分区的表 我可以查询最新的分区 前一天的数据 它会很好地使用该分区 hive gt select count 1 from vtc4 where ds 2012 11 01 garbage MapReduce
  • SSRS根据数据集字段创建所需数量的表(使用一个数据集)

    我有一个查询 该查询返回有关检查员的相关数据以及他们响应问题所需的时间 唯一的参数是 BeginDate 和 EndDate 因此对于任何给定的日期范围 可能有 0 到 100 个检查员 我只使用一个数据集 它包含一个 检查器 字段 我希望
  • 禁用某些控件(但不是全部)的 ASP.NET 视图状态

    如何在 ASP NET 页面中禁用大多数控件的视图状态 但允许某些控件仍使用 ViewState 我努力了 在我更改的属性中EnableViewState false Use 并将其用于每个想要保存 Viewstate 的控件 例如
  • Strtol 第二个参数

    第二个参数如何strtol work 这是我尝试过的 strtol str ptr 10 where ptr is a char and str是一个字符串 现在 如果我通过str as 34EF 并打印 ptr 它正确地给了我E and
  • 我得到 __init__() 在 IntegerField 上至少需要 2 个参数(给定 1 个)

    这是我的 models py 我得到的论点还不够init def 我知道有很多类似的问题 但我在那里找不到解决方案 class ExpField models FloatField def init self args kwargs Hav
  • 将 XmlDocument 的部分反序列化为对象

    我经常看到这个问题 但似乎没有人的标题真正描述了他们的问题 我从 Web API 返回一个大型响应对象 其中包含一般响应信息以及我想要反序列化的数据对象 完整的 XML
  • grepl 一个句点“.”在 R 中?

    假设我有一个字符串 Hello 我想看看这个字符串是否包含句点 text lt Hello results lt grepl text 这将返回 TRUE 结果 但如果文本为 TRUE 它也会返回该结果 Hello 没有句号 我很困惑 我在
  • fetch POST 返回 HTTP 415,而curl 运行良好并返回结果

    这就是我的代码的样子 let body authCode XXXX clientId YYYYYY clientSecret ZZZZZZ fetch https api myapp com oauth token method POST
  • 如何让 NLog 输出出现在 Azure 函数的流日志中?

    我有一个简单的 Azure Function 我希望能够在流日志窗口和 Application Insights 中监视日志输出 到目前为止 我可以在 Application Insights 中看到 NLog 输出 但不能在流窗口中看到
  • 何时在成员前面添加“this”(C#) 的好规则是什么?

    如果我正在访问成员字段 属性或方法 我永远不确定何时应该在其前面加上 this 我不是在询问需要它的情况 例如局部变量具有相同名称的情况 我说的是意义完全相同的情况 哪个更具可读性 我应该遵循哪些标准 最佳实践或经验法则 它应该在整个类或整
  • 将数据框中的因子转换为整数

    我有以下代码 anna table lt data frame anna1 anna2 write table lt anna table file anna file txt sep t quote FALSE 我的表最后包含如下数字 c