簡體   English   中英

合並大量的CSV數據集

[英]Merging a large number of csv datasets

這是2個樣本數據集。

PRISM-APPT_1895.csv https://copy.com/SOO2KbCHBX4MRQbn

PRISM-APPT_1896.csv https://copy.com/JDytBqLgDvk6JzUe

我有100種這些類型的數據集,它們試圖合並到一個數據框中,將其導出到csv,然后將其合並到另一個非常大的數據集中。

我需要通過“ gridNumber”和“ Year”合並所有內容,以創建時間序列數據集。

最初,我導入了所有年度數據集,然后嘗試將其與此合並:

df <- join_all(list(Year_1895,    Year_1896,    Year_1897,    Year_1898,    Year_1899,    Year_1900,    Year_1901,    Year_1902,   
                    Year_1903,    Year_1904,    Year_1905,    Year_1906,   Year_1907,    Year_1908,    Year_1909,    Year_1910,   
                    Year_1911,    Year_1912,    Year_1913,    Year_1914,   Year_1915,    Year_1916,    Year_1917,    Year_1918,   
                    Year_1919,    Year_1920,    Year_1921,    Year_1922,   Year_1923,    Year_1924,    Year_1925,    Year_1926,   
                    Year_1927,    Year_1928,    Year_1929,    Year_1930,   Year_1931,    Year_1932,    Year_1933,    Year_1934,   
                    Year_1935,    Year_1936,    Year_1937,    Year_1938,   Year_1939,    Year_1940,    Year_1941,    Year_1942,   
                    Year_1943,    Year_1944,    Year_1945,    Year_1946,   Year_1947,    Year_1948,    Year_1949,    Year_1950,   
                    Year_1951,    Year_1952,    Year_1953,    Year_1954,   Year_1955,    Year_1956,    Year_1957,    Year_1958,   
                    Year_1959,    Year_1960,    Year_1961,    Year_1962,   Year_1963,    Year_1964,    Year_1965,    Year_1966,   
                    Year_1967,    Year_1968,    Year_1969,    Year_1970,   Year_1971,    Year_1972,    Year_1973,    Year_1974,   
                    Year_1975,    Year_1976,    Year_1977,    Year_1978,   Year_1979,    Year_1980,    Year_1981,    Year_1982,   
                    Year_1983,    Year_1984,    Year_1985,    Year_1986,   Year_1987,    Year_1988,    Year_1989,    Year_1990,   
                    Year_1991,    Year_1992,    Year_1993,    Year_1994,   Year_1995,    Year_1996,    Year_1997,    Year_1998,   
                    Year_1999,    Year_2000), 
                    by = c("gridNumber","Year"),type="full")

但是R一直崩潰,因為我認為合並處理起來有些大,所以我正在尋找更有效的方法。 也許是data.table? 或其他選擇。

感謝您的任何幫助,您可以提供。

差不多九個月后,您的問題沒有答案。 我找不到您的數據集,但是,我將展示一種完成這項工作的方法。 在awk中它是微不足道的。

這是一個最小的awk腳本:

BEGIN {
    for(i=0;i<10;i++) {
        filename = "out" i ".csv";
        while(getline < filename) print $0;
        close(filename);
    }
}

該腳本作為awk -f s.awk運行,其中s.awk是文本文件中的上述腳本。

該腳本創建十個文件名:out0.csv,out1.csv ... out9.csv。 這些是帶有數據的現有文件。 打開第一個文件,並將所有記錄發送到標准輸出。 然后關閉文件,並創建並打開下一個文件名。 上面的腳本幾乎沒有提供命令行讀取/重定向的功能。 通常,您將使用awk處理從另一個文件讀取的一長串文件名; 帶有根據各種條件有選擇地忽略行或列的語句。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM