我有以下跟蹤號碼的功能。在不同的日子裏,由一個人在城市和城鎮中運行。我有3列。身份證(一個人)城市鎮。對於相同的身份證號碼,我有不同的英里數值,如果沒有英里跑過的話,可以在INA城市和城市或NA中使用。因此,對於ID = 1的城市和城鎮,我可以在ID = 1的多行中使用不同的值,對於ID = 2等,也可以使用相同的值。我有一個每個Id 500個CSV文件,現在我需要計算IDS和IDS的組合,以下是我的功能。返回NA,儘管有效值爲平均函數
milesmean <- function(directory, place, id = 1:500){
if(directory == "miledata"){
files <- list.files()
data <- list()
for (i in 1:500){
data[[i]] = read.csv(files[[i]])
}
req.data <- vector("list", length = length(id))
for(j in id){
req.data[[j]] <- data[[j]]$place
}
mean(unlist(req.data), na.rm=TRUE)
}
}
但是當我打電話milesmean( 「miledata」, 「城市」,1:10)我得到NA爲值和報警信息
Warning message:
In mean.default(unlist(req.data), na.rm = TRUE) :
argument is not numeric or logical: returning NA
有什麼理由? TIA。注:我只需要通過循環不使用lapply和其他類似的功能
原因給出的是警告信息:'unlist(req.data)'的最終值既不是數字也不是邏輯。從文件中讀取數據時,應檢查數據是否被導入爲「字符」或「因子」。 – juba
但是,當我執行讀取文件的內部代碼,然後調用平均函數時,它只給我一個有效的值,只有當我把它放在一個func中我得到這個警告信息 – Arin