我正在尝试使用以下代码将多个csv文件(均用分号分隔;)读入R:
files <- dir('MY_DIRECTORY',
pattern=paste(station_no,'*', sep=''),full.names = T) %>%
grep(paste('(',station_no,')',sep=""), ., value=TRUE)
data_test <- bind_rows(
lapply(files, function(dfile) {
# By station number
dat <- read.csv(dfile, sep = ";", na.strings = c("", " ", "NA"), fill =
TRUE)
})
)
我有84个文件,每个文件有119列和9行。一个文件的子集(3行4列)一开始可能看起来像这样:
testing <- data.frame("STAID" = c("1234", "1234", "1234", "1234"), "STANAME"
= c("Name", "Name", "Name", "Name"), "X1904" = c(NA, NA, NA, 3), "X1905" =
c(NA, 2, 3, 3))
但是,当我使用上面的代码导入数据后,R将输出前3列,就像这样(如果有NA,它将带出它右边的值来替换NA)
testing2 <- data.frame("STAID" = c("1234", "1234", "1234", "1234"),
"STANAME" = c("Name", "Name", "Name", "Name"), "X1904" = c(NA, 2, 3, 3))
有关如何解决此问题的任何想法?谢谢!
这是数据摘录(这些是2行):
"""STAID"";""STANAM"";""Constituent"";""X1903"";""X1904"";""X1905"";""X1906"";""X1907"";""X1908"";""X1909"";""X1910"";""X1911"";""X1912"";""X1913"";""X1914"";""X1915"";""X1916"";""X1917"";""X1918"";""X1919"";""X1920"";""X1921"";""X1922"";""X1923"";""X1924"";""X1925"";""X1926"";""X1927"";""X1928"";""X1929"";""X1930"";""X1931"";""X1932"";""X1933"";""X1934"";""X1935"";""X1936"";""X1937"";""X1938"";""X1939"";""X1940"";""X1941"";""X1942"";""X1943"";""X1944"";""X1945"";""X1946"";""X1947"";""X1948"";""X1949"";""X1950"";""X1951"";""X1952"";""X1953"";""X1954"";""X1955"";""X1956"";""X1957"";""X1958"";""X1959"";""X1960"";""X1961"";""X1962"";""X1963"";""X1964"";""X1965"";""X1966"";""X1967"";""X1968"";""X1969"";""X1970"";""X1971"";""X1972"";""X1973"";""X1974"";""X1975"";""X1976"";""X1977"";""X1978"";""X1979"";""X1980"";""X1981"";""X1982"";""X1983"";""X1984"";""X1985"";""X1986"";""X1987"";""X1988"";""X1989"";""X1990"";""X1991"";""X1992"";""X1993"";""X1994"";""X1995"";""X1996"";""X1997"";""X1998"";""X1999"";""X2000"";""X2001"";""X2002"";""X2003"";""X2004"";""X2005"";""X2006"";""X2007"";""X2008"";""X2009"";""X2010"";""X2011"";""X2012"";""X2013"";""X2014"";""X2015"";""X2016"";""X2017""",,,,,,,,,,
"X;""13333"";""Station"";""H001"";""NA"";""NA"";""NA"";""NA"";""NA"";""NA"";""NA"";""NA"";""NA"";""NA"";""NA"";""NA"";""NA"";""NA"";""NA"";""NA"";""NA"";""NA"";""NA"";""NA"";""NA"";""NA"";""NA"";""NA"";""NA"";""NA"";""NA"";""NA"";""NA"";""NA"";""NA"";""0"";""1554"";""91"";""47"";""808"";""452"";""632"";""467"";""529"";""441"";""466"";""92"";""522"";""353"";""300"";""334"";""186"";""1","110"";""700"";""685"";""376"";""77"";""1","020"";""380"";""682"";""240"";""514"";""503"";""482"";""280"";""28"";""317"";""361"";""443"";""874"";""688"";""702"";""1","770"";""914"";""1","10"";""1","00"";""760"";""645"";""55"";""1","080"";""683"";""506"";""652"";""265"";""49"";""740"";""375"";""386"";""71"";""318"";""1","040"";""533"";""565"";""252"";""54"";""374"";""293"";""59"";""592"";""430"";""1","460"";""321"";""493"";""194"";""61"";""73"";""516"";""968"";""1","950"";""682"";""675"";""779"";""2","310"";""518"";""559"";""51"";""384"";""533"";""382"""
如果要在代码中再走几步并回答以下问题,我可以解决所有这些问题:
我有一个包含729列的数据框,我想将其分成81个不同的数据框。因此,我想以9列为一组创建一个新的数据框。
第1-9列将是一个数据框
第10-18列将是一个数据框
第19-27列将是一个数据框
等
是否有一种简单的方法可以在R中自动执行此操作? 谢谢!