2014-03-04 26 views
-4

我有這樣的一個輸出文件,如何讓scan()忽略R中的第一列?

[1] 0.0000000 0.3862960 0.1931480 0.0000000 0.0000000 0.0000000 0.0000000 
    [8] 0.0000000 0.0000000 0.1931480 0.1931480 0.0000000 0.5794439 0.1931480 
    [15] 0.0000000 0.0000000 0.1931480 0.1931480 0.0000000 0.0000000 0.1931480 
    [22] 0.0000000 0.1931480 0.0000000 0.0000000 0.0000000 0.0000000 0.3862960 
    [29] 0.1931480 0.0000000 0.0000000 0.1931480 0.0000000 0.0000000 0.1931480 
    [36] 0.0000000 0.1931480 0.0000000 0.0000000 0.0000000 0.3862960 0.0000000 
    [43] 0.0000000 0.0000000 0.0000000 0.1931480 0.1931480 0.3862960 0.0000000 
    [50] 0.3862960 0.0000000 0.0000000 0.3862960 0.0000000 0.1931480 0.3862960 
    [57] 0.0000000 0.1931480 0.5794439 0.1931480 0.1931480 0.0000000 0.0000000 
    [64] 0.0000000 0.0000000 0.1931480 0.0000000 0.3862960 0.0000000 0.1931480 
    [71] 0.0000000 0.0000000 0.1931480 0.0000000 0.1931480 0.1931480 0.1931480 

我想讀入載體本, 我怎樣才能使掃描()忽略與[]的第一列?

+0

請問你們是怎麼產生這個輸出? – zx8754

+1

爲什麼不直接讀取所有內容,然後刪除第一列'df < - df [, - 1]'? – zx8754

+4

對我來說,這看起來非常像一個向量的行纏繞打印,每行的第一個元素的索引顯示爲「列」(例如,只需在控制檯中輸入「rnorm(70)」)。難道你不能把你的'輸出文件'分配給一個變量,比如'x < - rnorm(70)'。但是,要確切知道您擁有哪種類型的物體,您可以請「輸入」它。 – Henrik

回答

0

試試這個:

# read file as character vector 
v <- scan(text=" 
[1] 0.0000000 0.3862960 0.1931480 0.0000000 0.0000000 0.0000000 0.0000000 
[8] 0.0000000 0.0000000 0.1931480 0.1931480 0.0000000 0.5794439 0.1931480 
[15] 0.0000000 0.0000000 0.1931480 0.1931480 0.0000000 0.0000000 0.1931480 
[22] 0.0000000 0.1931480 0.0000000 0.0000000 0.0000000 0.0000000 0.3862960 
[29] 0.1931480 0.0000000 0.0000000 0.1931480 0.0000000 0.0000000 0.1931480 
[36] 0.0000000 0.1931480 0.0000000 0.0000000 0.0000000 0.3862960 0.0000000 
[43] 0.0000000 0.0000000 0.0000000 0.1931480 0.1931480 0.3862960 0.0000000 
[50] 0.3862960 0.0000000 0.0000000 0.3862960 0.0000000 0.1931480 0.3862960 
[57] 0.0000000 0.1931480 0.5794439 0.1931480 0.1931480 0.0000000 0.0000000 
[64] 0.0000000 0.0000000 0.1931480 0.0000000 0.3862960 0.0000000 0.1931480 
[71] 0.0000000 0.0000000 0.1931480 0.0000000 0.1931480 0.1931480 0.1931480", 
      what="character") 

# drop "[]" values, convert to numeric 
v <- as.numeric(v[!grepl("[",v,fixed=TRUE)])