私はプログラミングに慣れていない。 Rの異なるディレクトリから2つのテーブル/ファイルを結合しようとします。プログラムは、両方のディレクトリのフォルダを並列にループして、1つのファイルを別のファイルに読み込む必要があります。次に、ループしているフォルダからの2つの現在の.csvファイルを結合する必要があります。 残念ながら、1つのファイルから別のファイルに列を手動でコピーするにはファイルが多すぎます。R:異なるディレクトリにあるループファイルから2つのテーブルを結合する
ソースディレクトリとファイルは、以下のようになります。
filepath1:D:/ Test1を/
ファイル名:A1、A2、A3、A4、...
filepath2:D:/ Test2を/
ファイル名:B1、B2、B3、B4 ,. ..
これにより、A1とB1は1つの共通の列に基づいて結合されます。
次に、A2とB2を結合する必要があります。その後、A3とB3など
基本的に、手動で選択した2つの特定のファイルにcbind、merge、またはjoin関数を使用すると、うまく動作します。私は、フォルダのTest1をループに試してみて、そのフォルダにTest2の上に、私はdata.framesのリストを取得すると
library(readr)
library(dplyr)
A1 <- read.csv("D:/Test1/A1.csv")
B1 <- read.csv("D:/Test2/B1.csv")
mydata = inner_join(A1, B1, by="micrometer")
:私は、次のコードを使用していました。次に、それらを結合すると、関数 "inner_join"をクラス "list" "のオブジェクトに適用できないというエラーが発生します。
library(rio)
require(data.table)
setwd("D:/Test1/")
file <- dir(pattern ="*.csv")
for (k in 1:length(listcsv)) {
ldf[[k]] <- read.csv(listcsv[k])
}
data.files = list.files(pattern = "*.csv")
mydata1 <- lapply(file, read.csv)
setwd("D:/Test2/")
file2 <- dir(pattern ="*.csv")
for (j in 1:length(listcsv)) {
ldf[[j]] <- read.csv(listcsv[j])
}
data.files2 = list.files(pattern = "*.csv")
mydata2 <- lapply(file2, read.csv)
myfulldata = inner_join(mydata1, mydata2, by="micrometer")
間違いを見つけてもらえますか?
素晴らしい!どうもありがとう!これは、マッパリと完全に動作します。 – Donkey19
@ Donkey19素晴らしいあなたは答えを受け入れることができますか? – MentatOfDune