

現在、Rを用いた分析を行なっている初心者なのですが、不明点が発生した為  
この場を借りて質問させていただきます。

コンパイラには、Rstudioを利用しています。

右上に読み込み済みデータを確認できる"Data"という箇所にすでに読み込み済み.CSVファイルが  
**100件** あるのですが、 **全て名前が異なり** 、各データに含まれる列に新たな項目として、 **100件ごとに.CSVファイルの名前を追加**
したいと考えております。これfor文等を用いて自動で追加できるようにしたいのですが、わからない為どなたか詳しい方にご教授いただきたいです。

（例）  
a.csv  
b.csv  
c.csv  
・  
・  
・  
に対してaの中身(行列)が  
123456  
A  
B  
C  
D  
だとするなら、7列目にnameという列名を追加し、  
7列目に中身を全て"a"を格納したいです。  
同じ作業をa.csv,b.csv,c.csvと全て行いたいです。


CC BY-SA 4.0
2018-11-30T18:04:54.760
50795
2018-11-30T22:44:26.547
31228
question
r
Rについて全てのオブジェクトに同じ処理を行いたい

[code]

    library(tidyverse)
    
    dir_path <- "YOUR_PATH"
    files <- dir(path = dir_path, pattern = ".csv", full.names = TRUE) # ファイルの一覧をフルパスで取得する
    file_names <- str_sub(string = basename(files),  start = 1, end = -5) # ファイル名の非拡張子部分を取得する
    
    # forによる処理
    
    results <- NULL # 結果をおさめる入れ物を作る
    for(i in seq_along(file_names)){
      result <- read_csv(files[i])
      result$name <- file_names[i]
      results[[i]] <- result
    }
    print(results)
    
[/code]

tidyverseパッケージを多用する以下のようなアプローチもあります。

[code]

    map2(.x = files, .y = file_names, .f = ~ read_csv(.x) %>% mutate(name = .y))
    
[/code]


CC BY-SA 4.0
2018-11-30T22:44:26.547
50797
2018-11-30T22:44:26.547
19075
50795
answer