【问题标题】:Ifelse subset - (list) object cannot be coerced to type 'logical'Ifelse 子集 - (列表)对象不能被强制输入“逻辑”
【发布时间】:2021-03-01 19:32:49
【问题描述】:

我正在做this 问题中需要做的事情,除了我想在原始数据框中创建一个新列,其中子集出现的行具有真或假值。

ifelse(subset(reads_matrix, rownames(reads_matrix) %in% crass$Crass_hits)
                         ,reads_matrix$Crass <- c('TRUE'),
                         reads_matrix$Crass <- c('FALSE'))

评估为:

Error in ifelse(subset(reads_matrix, rownames(reads_matrix) %in% crass$Crass_hits), : (list) object cannot be coerced to type 'logical'

我也试过了:

reads_matrix$Crass <- ifelse(subset(reads_matrix, rownames(reads_matrix) %in% crass$Crass_hits),'TRUE','FALSE')



if (subset(reads_matrix, rownames(reads_matrix) %in% crass$Crass_hits)){
    reads_matrix$Crass <- c('TRUE')
}
    reads_matrix$Crass <- c('FALSE')


for (row in rownames(reads_matrix)){
    if(subset(reads_matrix,row %in% crass$Crass_hits)){
        reads_matrix$Crass <- c('TRUE')
    }
       reads_matrix$Crass <- c('FALSE')
}


Warning message in if (subset(reads_matrix, row %in% crass$Crass_hits)) {:
“the condition has length > 1 and only the first element will be used”

Error in if (subset(reads_matrix, row %in% crass$Crass_hits)) {: argument is not interpretable as logical
Traceback:

【问题讨论】:

  • ifelse 的第一个参数是一个 data.frame,它是一个列表对象。例如比较 ifelse(mtcars, 1, 0)ifelse(mtcars == 4, 1, 0)
  • 我现在知道了,非常感谢!

标签: r dataframe


【解决方案1】:
crass_subset<-subset(reads_matrix, rownames(reads_matrix) %in% crass$Crass_hits)

reads_matrix$Crass <- ifelse(rownames(reads_matrix) %in% crass_subset, 1, 0)

【讨论】:

    猜你喜欢
    • 2016-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-17
    • 2016-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多