尝试从UCSC Table Browser重新加载交叉引用表和hprd表时出现错误:
kgxref=read.table("kgXref.txt.gz",sep="\t",as.is=T,comment="",header=T,quote="")
hprd=read.table("humanHprdP2P.txt.gz",as.is=T,header=T,comment="")
我不断收到错误消息:
Error in read.table("kgXref.txt.gz", sep = "\t", as.is = T, comment = "", : invalid numeric 'as.is' expression
我检查了我的文件名是否正确键入,工作目录设置为正确的文件夹,并且尝试加载带有和不带有“ .gz”扩展名的文件(我同时压缩和wd中的未压缩版本。
我可能还应该补充说,几周前,我已经使用了这个确切的代码。我最近上周更新了我的OS(Mac Mojave),R(3.6.0)和RStudio(1.2.1335版),以便安装一些与我的旧版本不兼容的软件包。我觉得这可能与它有关。
任何帮助将不胜感激!预先感谢!
答案 0 :(得分:0)
根据as.is
文档,看来read.table
参数是向量:
read.table的默认行为是将字符变量(未转换为逻辑,数字或复数)转换为因子。变量as.is控制colClasses否则未指定的列的转换。它的值可以是逻辑向量(必要时可以循环使用值),也可以是数字或字符索引的向量,用于指定不应将哪些列转换为因子。 注意:要禁止所有转换,包括数字列的转换,请设置colClasses =“ character”。 请注意,as.is是按列(不是按变量)指定的,因此包括行名的列(如果有)和要跳过的任何列。
因此,为了检查这是否是问题,我将完全删除该参数:
hprd=read.table("humanHprdP2P.txt.gz",header=T,comment="")
然后,如果可行,请指定一个带有列索引的向量,该列索引应“按原样”或布尔值保存,例如c(2,3)
。
很抱歉,我无法通过一个简单的示例来更精确地介绍它,但希望对您有所帮助。
答案 1 :(得分:0)
我猜想,通过使用 as.is = TRUE ,我们试图避免将列变成因子类,并希望将它们保留为字符类。另外,这些文件没有标题。
以下是选项:
# keep strings as character (avoid factors)
kgxref <- read.table("kgXref.txt.gz", stringsAsFactors = FALSE, sep = "\t")
使用 data.table :: fread :
# use fread instead, with default settings it reads the file as expected
kgxref <- fread("kgXref.txt.gz")
甚至更好,使用 fread ,我们可以直接从链接获取表:
# fread with a link to zipped data file from UCSC
kgxref <- fread("http://hgdownload.cse.ucsc.edu/goldenpath/hg19/database/kgXref.txt.gz")
humanHprdP2P <- fread("http://hgdownload.cse.ucsc.edu/goldenpath/hg19/database/humanHprdP2P.txt.gz")