【问题标题】:How to read logical data with header from file如何从文件中读取带有标题的逻辑数据
【发布时间】:2015-09-30 17:45:44
【问题描述】:

我想看下表

#logical.table
      col_a col_b
row_a TRUE  FALSE
row_b FALSE TRUE

R 中的结果对象应具有文件中的列名和行名(至少其中一个)以及逻辑列和行

我试过了:

  • matrix(ncol=2, byrow=T, scan(file = 'logical.table', what=TRUE, skip=1)) 但我想念 col/row 名称。

  • 删除行名,w<-read.table(file='logical.table', colClasses = "logical", header=T)is.logical(w[1])is.logical(w[1,]) 返回 False


解决方案
正如 Derwin McGeary 所写:x <- read.table(file="logical.table") 工作得很好。 对于逻辑列,我使用x[,col],对于逻辑行,我最终使用t(x)[,row]

【问题讨论】:

  • read.table(file='logical.table', header=T) 不工作吗?
  • 试试is.logical(w[,1])is.logical(w[[1]]) 否则它是一个data.frame
  • @user20650 read.table 有效。我很困惑,因为 is.logical(w[1,]) 会返回 false,但 is.logical(t(w)[,1]) 似乎可以解决问题
  • 是的,我犯了同样的错误...如果您查看class(w[1,])class(w[1])(或str),您会发现它是一个数据框,因此is.logical 是错误的。您需要索引列 os 使用双方括号(如上注释)将列转换为向量。对于您可以使用的行is.logical(unlist(w[1,]))

标签: r dataframe


【解决方案1】:

函数read.table 足够聪明,可以读取该文件并给出适当的行和列名称。

x <- read.table(file="logical.table") str(x) 我剪切并粘贴了您的示例,包括 #logical.table 行,它仍然有效。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-04-08
    • 1970-01-01
    • 1970-01-01
    • 2020-03-18
    • 2016-10-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多