R - ошибка в colMeans (wind.speed, na.rm = T): «x» должно быть числовым - PullRequest
0 голосов
/ 28 февраля 2019

Я пытаюсь импортировать один столбец набора данных текстового файла, где каждый файл представляет собой один день данных.Я хочу взять среднее значение скорости ветра каждого дня.Вот код, который я написал для этого:

    daily.wind.speed <- c()

    file.names <- dir("C:\\Users\\User Name\\Desktop\\R project\\Sightings Data\\Weather Data", pattern =".txt")

    for(i in 1:length(file.names))
      {
##import data file into data frame
    weather.data <-read.delim(file.names[i])

## extract wind speed column
    wind.speed <- weather.data[3]

##Attempt to fix numeric error
    ##wind.speed.num <- as.numeric(wind.speed)

##Take the column mean of wind speed
    daily.avg <- colMeans(wind.speed,na.rm=T)

##Add daily average to list
    daily.wind.speed <- c(daily.wind.speed,daily.avg)

##Print for troubleshooting and progress
    print(daily.wind.speed)

    }

Этот код работает с некоторыми файлами в моем наборе данных, но другие выдают мне эту ошибку в этом разделе кода:

> daily.avg <- colMeans(wind.speed,na.rm=T)
Error in colMeans(wind.speed, na.rm = T) : 'x' must be numeric

У меня также возникают проблемы с преобразованием этих значений в числовые, и я ищу варианты, чтобы либо преобразовать мои данные в числовые, либо, возможно, принять среднее значение другим способом, с которым эта проблема не возникает.

> as.numeric(wind.speed.df)
Error: (list) object cannot be coerced to type 'double'

weather.data Пример

1 Ответ

0 голосов
/ 28 февраля 2019

Даже если это не воспроизводимый пример, проблема в том, что вы применяете матричную функцию к вектору, чтобы она не работала.Просто измените colMeans на mean

...