2017-01-28 4 views
0

非常に直接的な質問です。このような実行中のファイル名をdata.tableに更新します。

library(data.table) 
dt <- fread("HK0001.csv", drop = 5:24) 

データ:同じフォルダの下

    Time Price Volume Amount Flag 
1: 2016-01-04 09:05:06 105.0 9500 993700 1 
2: 2016-01-04 09:20:00 104.1 23500 2446350 0 
3: 2016-01-04 09:30:00 104.1 18500 1924550 1 
4: 2016-01-04 09:30:01 103.9 12500 1300550 0 
5: 2016-01-04 09:30:02 104.1 16118 1675233 1 
6: 2016-01-04 09:30:05 104.0 13000 1352200 0 
7: 2016-01-04 09:30:06 104.1 2500 260100 1 
8: 2016-01-04 09:30:07 104.1 1500 156150 1 
9: 2016-01-04 09:30:08 104.3 500 52150 1 
10: 2016-01-04 09:30:10 104.0 1000 104000 0 
11: 2016-01-04 09:30:11 103.9 1000 103900 0 
12: 2016-01-04 09:30:15 104.0 3500 364450 1 
13: 2016-01-04 09:30:17 104.3 2000 208450 1 
14: 2016-01-04 09:30:19 104.3 1500 156450 1 
15: 2016-01-04 09:30:20 104.4 500 52200 1 
16: 2016-01-04 09:30:21 104.4 1500 156600 1 
17: 2016-01-04 09:30:22 104.4 1000 104400 1 
18: 2016-01-04 09:30:24 104.4 1500 156600 1 
19: 2016-01-04 09:30:25 104.0 2000 208000 0 
20: 2016-01-04 09:30:27 104.1 3500 364350 1 

は、その名も証券コードティッカーで多く、このようなCSVファイルがあります。 freadの例に示されるように、「0001」はティッカー名であり、「0002」、「0003」およびその他の1000個が存在する。

質問:私は1つの新しい列を追加することによって、fread後data.tableにファイル名にティッカーを更新したいと思います

は今の列がTimePriceVolumeAmountFlagです。最初の列にstock tickerという名前の1列を入れたいとします。

私は質問に取り組んでいないので、次の点を確認しました。

Rscript: Determine path of the executing script

getting the name of a dataframe from loading a .rda file in R

どうもありがとう!

+1

参考のため、ここではかなりのrosscovaの答えと同じことを言う「StackOverflowのドク」です - 列 - ストアデータ/ 15561/rea ding-in-many-related-files#t = 201701281415067989851 – Frank

答えて

3

インポート後にsubstrから追加することはどうですか?

file <- "HK0001.csv" 
dt <- fread(file, drop = 5:24) 
dt[ , stockTicker := substr(file, 3, 6) ] 

あなたはまた、機能にこれを回すことができる...

read_in <- function(file) { 
    dt <- fread(file, drop = 5:24) 

    dt[ , stockTicker := substr(file, 3, 6) ] 

    return(dt) 
} 

次に、ファイルのリストにその関数を呼び出して、各ファイルからデータを(一つの大きなデータテーブルオブジェクトとしてそれらを一緒に結合以来、今識別)です:http://stackoverflow.com/documentation/data.table/4456/using-list:

file.list <- list.files() 

DT <- lapply(file.list, read_in) 
DT <- rbindlist(DT) 
+0

あなたは 'rbindlist'に' idcol = 'が必要かもしれないと思います..? – Frank

+1

@Frank 'stockTracker'カラムを作成することで' read_in'関数でこれをやっています。 'idcol'も必要と思う? – rosscova

+0

ああ、そうです、それを忘れました。 – Frank

関連する問題