2017-08-30 52 views
0

我有一个名为“Names_and_Nicks”的数据框,我需要使用唯一的名称NickName并读取与该NickName相对应的所有三个参数名称。然后在文件夹中匹配这些参数名称并在RStudio中加载这些.csv文件。 我的数据框如下:通过匹配Dataframe中的可用名称从文件夹导入多个CSV文件

enter image description here

而且我的文件是这样的文件夹: enter image description here

因此,任何建议和帮助将是巨大的。

+0

按昵称拆分数据帧,然后将每个昵称的所有三个文件合并到一个数据框中输出。 –

+0

如何通过匹配数据框中可用的文件名来读取文件夹中的文件,这是我不知道的。你能否用2,3行脚本更新我来执行这个操作@Tim。 –

+0

这里你的实际期望输出是什么?每个昵称有一个CSV文件,还是其他的? –

回答

1

您可以在昵称上分割数据框,这会生成一个数据框列表,每个数据框对应与单个昵称关联的文件。然后,您可以遍历每个这样的数据框并生成一个单一的数据框,该数据框是该昵称的所有文件的集合。事情是这样的:

read_and_combine <- function(x) { 
    result <- NULL 
    for (i in 1:nrow(x)) { 
     new_df <- read.csv(file=x$ParamName[i], header=TRUE, sep=",") 
     if (is.null(result)) { 
      result <- new_df 
     } 
     else { 
      result <- rbind(result, new_df) 
     } 
    } 

    return(result) 
} 

df_list <- split(Names_and_Nicks, Names_and_Nicks$NickName) 
df_combined <- lapply(df_list, read_and_combine) 

此时df_combined应该是dataframes的列表,每个都包含了所有对应一个昵称文件行。

+0

df_list是类型列表,函数不接受它。 nrow(df_list)返回NULL –

+0

你为什么要在列表中使用'nrow'?列表没有行。你是否尝试过我的_exact_代码,或者你是否惹过它? –

+0

nope,我正好使用你的一个,但它需要很多时间,所以我尝试了其他的东西,雅我知道列表没有任何nrow ..现在测试你的一个小数据集 –

相关问题