【问题标题】:R: Error says invalid 'type' (character) of argumentR:错误说参数的“类型”(字符)无效
【发布时间】:2021-05-04 09:37:52
【问题描述】:

我是 R 新手,我正在尝试使用 TCGA.GTEX 数据集查看肿瘤与正常之间的基因表达差异。我正在尝试查找所有列的日志折叠变化。

这是我应用的代码:

GELogFoldChanges <- apply(TCGA_GTEX_lung[-7], 2, function(x) log(sum(x[1:1011]/sum(x[1012:1299])))

但是出现这个错误:

sum(x[1:1011]) 中的错误:参数的“类型”(字符)无效

这个错误是什么意思,我应该如何更正这个代码?

【问题讨论】:

    标签: r


    【解决方案1】:

    在我看来TCGA_GTEX_lung[-7] 中的某些列是字符。您需要数字来计算总和。您可以使用代码apply(df, 2, function(x) class(x)) 进行检查。如果是这种情况,您可以使用as.numeric() 将字符转换为数字。

    编辑

    apply(df,2,function(x) log(sum(suppressWarnings(as.numeric(x))[1:1011]/sum(suppressWarnings(as.numeric(x))[1012:1299], na.rm = TRUE), na.rm = TRUE)))
     
    

    【讨论】:

    • 嗨!感谢您的回复,我尝试使用以下代码将字符转换为数字: lapply(TCGA_GTEX_lung,as.numeric) 我不确定我是否正确执行此操作,因为出现了:警告消息:1:在 lapply(LTG, as .nu​​meric) :强制引入的 NA。同样,当我再次运行此代码时: GELogFoldChanges
    • 看看这篇文章(stackoverflow.com/questions/14984989/…),它解释了警告“强制引入的NAs”的含义。简而言之,此警告告诉您在转换过程中创建了一些 NA。我相信这也是你的情况。计算 sum (na.rm = TRUE) 时可以忽略 NA。请参阅上面的更新代码。 @Tah
    • 如何将 sum (na.rm = TRUE) 写入我的代码? lapply(LTG, as.numeric, sum (na.rm = TRUE) )?
    • 我根据你原来的apply函数编辑了上面的代码。你看见了吗? apply(TCGA_GTEX_lung[-7],2,function(x) log(sum(as.numeric(x)[1:1011]/sum(as.numeric(x)[1012:1299], na.rm = TRUE), na.rm = TRUE)) @Tah
    • 哦不抱歉我错过了。我运行了你给我的代码,但现在在控制台中出现了一个 + 号。我做错了什么??
    猜你喜欢
    • 2013-08-04
    • 1970-01-01
    • 2016-08-07
    • 1970-01-01
    • 1970-01-01
    • 2020-10-07
    • 2022-09-29
    • 2016-05-09
    • 2019-11-15
    相关资源
    最近更新 更多