【发布时间】: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,]))