2017-08-30 49 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 ..現在測試你的一個小數據集 –

相關問題