세 개의 행렬 데이터 파일 (LAT, LON, DATA)을 가져 와서 세 개의 열이있는 하나의 CSV 파일로 결합하는 기능이 있습니다. 그러나 이는 2010 년에서 2015 년까지의 일별 데이터 시리즈 중 하루 동안의 일이므로 데이터 파일 디렉터리에 적용해야합니다. LAT 및 LON 파일은 날짜별로 DATA 파일 만 달라지지 않습니다. 제 질문은 간단합니다 :이 함수를 내 디렉토리에 어떻게 적용하여 새 CSV 파일의 이름에 날짜가 포함 된 새 CSV 파일을 제공합니까? 생각? 나는 행운이없는 몇 가지 것을 시도했다. 여기 내 코드 :디렉토리에 함수 적용
####PR PRAG WATER DATA XYZ###
setwd("/Users/andrewbudsock/Dropbox/Research/ActualET_PR")
LON<-read.csv("LONGITUDE.csv")
LAT<-read.csv("LATITUDE.csv")
ET<-read.csv("actual_ET20100101.csv")
###STACKOVERFLOW TRY######
myList<-list(LON=LON, LAT=LAT, ET = ET)
lapply(myList, function(x){
as.matrix(x) %>%
as.numeric()
}) %>%
as.data.frame()
Flat<-na.omit(flattened)
write.csv("flat.csv", Flat)
DataName<-seq(as.Date("2010-01-01"), as.Date("2015-12-31"), by = 'day')
as.list(DataName)
write.csv(Flat, "xyz.csv");
#loop all files in
files <- list.files(path="/Users/andrewbudsock/Dropbox/Research/ActualET_PR", pattern="*.csv", full.names=T, recursive=FALSE)
lapply(files, function(x) {
t <- read.table(x, header=T) # load file
# apply function
out <- function(t){
for(i in length(t)){
myList= list(LAT=LAT, LON=LON, ET=t[i])
lapply(myList, function(x){
as.matrix(x) %>%
as.numeric()
}) %>%
as.data.frame()
Flat<-na.omit(flattened)
}
}
# write to files
write.table(out, "/Users/andrewbudsock/Dropbox/Research/ActualET_PR/R", paste(DataName, ".csv", sep = ""), sep="\t", quote=F, row.names=F, col.names=T)
})
안녕하세요. 이것에 대한 마지막 문제가 하나 있습니다. 어떤 이유로 : –
list.files (pattern = "actual_ET * .csv")가 0 값을 반환하고 있습니다. 파일 이름은이 실제 _ET20151224.csv와 같이 구조화되며 날짜별로 변경됩니다. 어떤 생각이 어떻게 해결할 수 있습니까? –
죄송합니다. 체크 아웃 할 파일이 없으므로'list.files' 패턴 매칭의 이상한 점을 잊어 버렸습니다. 기억이 안 나는 이유 때문에'*'를 처리하지 않습니다. 대신에,'list.files (pattern = "^ actual_ET")'를 사용해 "actual_ET"로 시작하는 것을 모두 찾으십시오. –