跳过R read.table()中的列

时间:2016-10-26 10:45:50

标签: r

我想跳过前三列。无法理解有关colClasses的帖子,因为我是R的新手。

YDL025C YDL025C 1   -0.1725 -0.5375 -0.4970 -0.3818 -0.5270 -0.4260 -0.6929 -0.4020 -0.3263 -0.3373 -0.3532 -0.2771 -0.2732 -0.3307 -0.4660 -0.4314 -0.3135
YKL032C YKL032C 1   -0.2364 0.0794  0.1678  0.2389  0.3847  0.2625  0.1889  0.2681  0.0363  -0.1992 -0.0521 -0.0307 0.0584  0.2817  0.2239  -0.0253 0.0751

2 个答案:

答案 0 :(得分:2)

如果必须使用read.table并且想要在进入时进行过滤,则可以使用col.classes,如下所示。你有20列。假设前两个是字符,其余是数字,你想要下降4,5,6。您构造了一个长度为20的向量,详细说明了该信息。 NULL不会拉入这些列。

x<- read.table(file="datat.txt", 
               colClasses = c(rep("character", 2),
                              rep("numeric", 1),
                              rep("NULL", 3),
                              rep("numeric", 14)),
               header = FALSE)
x

       V1      V2 V3      V7      V8      V9     V10     V11     V12     V13     V14     V15     V16     V17     V18     V19     V20
1 YDL025C YDL025C  1 -0.3818 -0.5270 -0.4260 -0.6929 -0.4020 -0.3263 -0.3373 -0.3532 -0.2771 -0.2732 -0.3307 -0.4660 -0.4314 -0.3135
2 YKL032C YKL032C  1  0.2389  0.3847  0.2625  0.1889  0.2681  0.0363 -0.1992 -0.0521 -0.0307  0.0584  0.2817  0.2239 -0.0253  0.0751

答案 1 :(得分:0)

如上所述,在阅读后更容易删除列。例如:

mydf <- read.table("mydf.txt")

然后,

mydf[, 4:ncol(mydf)]

将删除前3列。