【发布时间】:2013-06-25 02:36:09
【问题描述】:
使用特定函数,我希望合并成对的数据帧,用于 R 目录中的多个配对。我正在尝试编写一个“for 循环”来为我完成这项工作,虽然 Merge several data.frames into one data.frame with a loop 等相关问题很有帮助,但我正在努力为这种特殊用途调整示例循环。
我的数据框以“_df1.csv”或“_df2.csv”结尾。我希望合并到输出数据帧中的每一对在文件名(即 543_df1.csv 和 543_df2.csv)的存在处具有相同的编号。
我已经使用 list.files 命令为我的目录中的两种类型的文件创建了一个字符串,如下所示:
df1files <- list.files(path="~/Desktop/combined files” pattern="*_df1.csv", full.names=T, recursive=FALSE)
df2files <- list.files(path="="~/Desktop/combined files ", pattern="*_df2.csv", full.names=T, recursive=FALSE)
为了合并每对数据框,我想应用的函数和命令如下:
findRow <- function(dt, df) { min(which(df$datetime > dt )) }
rows <- sapply(df2$datetime, findRow, df=df1)
merged <- cbind(df2, df1[rows,])
我现在正尝试将这些命令合并到一个从以下行开始的 for 循环中,以防止我不得不手动合并这些对:
for(i in 1:length(df2files)){ ……
我还不是一个强大的 R 程序员,并且已经碰壁了,所以任何帮助都将不胜感激。
【问题讨论】: