2017-06-11 8 views
1

フォルダ内に複数のcsvを編集する際に助けが必要です。各ファイルの行数を数え、ファイルに新しい列を追加する必要があります。新しい列は、列の最初の行として行数を持つ必要がありますし、その後の各行に対して1ずつ降順にする必要があります。複数のcsvの行をカウントし、降順で新しい列としてcsvを書き込む

Current: 
ID V1 V2 V3 
1 0.4625 0.917 
2 0.9324 0.248 
3 0.6691 0.781 
4 0.1935 0.330 

Proposed: 
ID V1 V2 V3 newcol 
1 0.4 25 0.9 5 
2 0.9 24 0.2 4 
3 0.6 91 0.7 3 
4 0.1 5 0.3 2 
5 0.2 44 0.5 1 

誰でもアイデアはありますか?私はターミナルで遊んでいて、そのようにやろうとしています。私はまた、いくつかのマイナーな経験があります。私はそれが役立つ場合は、また、Macを使用しています。

ありがとうございます!

答えて

2

我々は

df1$newcol <- rev(seq_len(nrow(df1))) 

それとも

df1$newcol <- nrow(df1):1 
+0

クイックリプライのおかげで、akrun。残念ながら私はあなたの答えが私の頭の上にあったと思います。あなたの答えは、最初にCSVのデータフレームをrにロードしてから、その方法を変更する必要があることを暗示していますか?また、私はここにループが必要だと思っています。あなたの助けをもう一度ありがとう。 – cdwhiteiv

+0

@cdwhiteiv csvファイルをお持ちの場合、 'read.csv/read.table'を使ってそれを読む必要があります。' df'すなわち 'df < - read.csv( 'yourfile.csv')'オブジェクトを作成してからありがとうございます。 – akrun

+0

ありがとうございます。私はちょうど下にしようとしたが、それは動作していないようだ。私が言及しなかったことは、これらのデータフレームをCSV形式にエクスポートする必要があることです。 – cdwhiteiv

1

がそれを手に入れた行うことができます! akrunのガイダンスでは、新しい列の行を降順に並べ替えて、各csvに列を追加できました。私は元のファイルにそれを書き戻すことができました!

filenames <- list.files(path=".../pathoffolder", pattern=".*csv") 

for(i in filenames) { 
    filepath <- file.path(".../pathoffolder", paste(i)) 
    assign(i,filepath) 
    df <- read.csv(filepath) 
    df$newcol <- rev(seq_len(nrow(df))) 
    write.csv(df, filepath, quote = FALSE, row.names = FALSE) 
} 
関連する問題