简体   繁体   中英

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

I am trying to importa single column of a text file data set where each file is a single day of data. I want to take the mean of each day's wind speed. Here is the code I have written for that:

    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)

    }

This code seems to work on some files in my data set, but others give me this error during this section of the code:

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

I am also having trouble converting these values to numeric and am looking for options to either convert my data to numeric, or to possibly take the mean in a different way that dosen't encounter this issue.

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

weather.data Example

Even though this is not a reproducible example the problem is that you are applying a matrix function to a vector so it won't work. Just change the colMeans for mean

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM