读取R中的文本文件并将其转换为字符对象

Fed*_*rgi 3 types r

我在R 2.10.0中正在阅读这样的文本文件

248585_at   250887_at   245638_s_at AFFX-BioC-5_at
248585_at   250887_at   264488_s_at 245638_s_at AFFX-BioC-5_at  AFFX-BioC-3_at  AFFX-BioDn-5_at
248585_at   250887_at
Run Code Online (Sandbox Code Playgroud)

使用命令集群<-read.delim("test",sep ="\ t",fill = TRUE,header = FALSE)

现在,我必须将此文件中的每一行传递给BioConductor函数,该函数仅将字符向量作为输入.我的问题是在这个"集群"对象上使用"as.character"会将所有内容转换为数字字符串.

> clusters[1,]
         V1        V2          V3             V4 V5 V6 V7
1 248585_at 250887_at 245638_s_at AFFX-BioC-5_at         
Run Code Online (Sandbox Code Playgroud)

> as.character(clusters[1,])
[1] "1" "1" "2" "3" "1" "1" "1"
Run Code Online (Sandbox Code Playgroud)

有没有办法保留原始名称并将它们放入字符向量中?

也许它会有所帮助:"read.delim"文件给出的"cluster"对象属于"list"类型.

非常感谢 :-)

费德里科

Mar*_*rek 7

默认情况下,字符列将转换为因子.您可以通过设置as.is=TRUE参数来避免此问题:

clusters <- read.delim("test", sep="\t", fill=TRUE, header=FALSE, as.is=TRUE)
Run Code Online (Sandbox Code Playgroud)

如果只将参数从文本文件传递到字符向量,则可以执行以下操作:

x <- readLines("test")
xx <- strsplit(x,split="\t")
xx[[1]] # xx is a list
# [1] "248585_at"      "250887_at"      "245638_s_at"    "AFFX-BioC-5_at"
Run Code Online (Sandbox Code Playgroud)