Как изменить тип данных столбца во фрейме данных на дату с Char - PullRequest
1 голос
/ 23 сентября 2019

Я возиться с некоторыми столбцами в R, используя RStudio, и попытался изменить тип данных одного из столбцов с Char на Date.

Я использовал несколько вариантов, и тот, который появилсясамый близкий был

data$Date <- as.Date(as.character(data$Date))

Хотя даже это, кажется, не работает, поскольку он изменяет значения столбца на некоторые странные значения

, то есть с

enter image description here

Что-то вроде

enter image description here

Я не могу понять, почему преобразование не работает.

Вот мой код до этого момента

# load the tidyverse library
library("tidyverse")
setwd("C:/Users/ibrahim.cetinkaya/OneDrive - NTT/Desktop/data")
##################### Part A #####################
# data files (you need to specify the paths of the CSV files (e.g. relativeor absolute) )
files <- c("data/201808.csv",
       "data/201809.csv",
       "data/201810.csv",
       "data/201811.csv",
       "data/201812.csv",
       "data/201901.csv",
       "data/201902.csv",
       "data/201903.csv",
       "data/201904.csv",
       "data/201905.csv",
       "data/201906.csv",
       "data/201908.csv"
)

#Concatenate into one data frame. 
data <- data.frame()
for (i in 1:length(files)){
  temp <- read_csv(files[i], skip = 7)
  data <- rbind(data, temp)
}
#View to verify
view(data)

#Part 2
#Remove vairables which have no data at all (All the data are na's)
#Remove variables that doesn't have adequate data (70% of the number of records are NA's)
data <- data[rowMeans(is.na(data))<=0.9,]
view(data)


#Change the column names to have no spaces between the words

names(data) <- gsub(" ", "_", names(data))
view(data)


#Convert Date to date type

#df2 <- data %>% mutate_at(vars(data), as.Date, format="%m-%d-%Y")

#data %>% mutate(data$Date==as.Date(Date, format = "%m.%d.%Y"))
data$Date <- as.Date(as.character(data$Date))
#^^^ This doesn't seem to be working properly ^^^


#Checking if it worked
typeof(data$Date)
view(data)

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

1 Ответ

2 голосов
/ 23 сентября 2019

Используйте

data$Date <- as.Date(data$date, "%m/%d/%Y")

, а затем для извлечения месяца

data$Month <- format(data$Date, "%m")

Мы также можем использовать lubridate

data$date <- lubridate::mdy(data$date)

и использовать month чтобы извлечь месяц.

data$month <- month(data$date)

и с anytime

data$Date <- anytime::anydate(data$Date)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...