Предложения для исправления прочитанного.csv

#r #date #read.csv

#r #Дата #read.csv

Вопрос:

Я читаю файл csv,

 data <- read.csv("F:/Root/ PUMPING - data.csv", header = T, sep = ";")
  

который представляет собой фрейм данных из 1168 наблюдений с 8 переменными.

Переменные и таблица выглядят следующим образом:

   Fiscal_Year SiteState      county  StartDate    EndDate Site_Type Count_Site Sum_Gallons
1        FY 18        IA      Butler 21/11/2017 21/11/2017         F          3      554700
2        FY 18        IA Cerro Gordo 18/10/2017 19/10/2017         F          1     1124085
3        FY 18        IA Cerro Gordo 19/10/2017 19/10/2017         F          1      478240
4        FY 18        IA Cerro Gordo 20/10/2017 20/10/2017         F          1      201306
5        FY 18        IA Cerro Gordo 20/10/2017 21/10/2017         F          1      973760
6        FY 18        IA Cerro Gordo 20/10/2017 23/10/2017         F          1      784743
7        FY 18        IA Cerro Gordo 26/10/2017 26/10/2017         F          1      246462
8        FY 18        IA Cerro Gordo 27/10/2017 29/10/2017         F          1      561808
9        FY 18        IA Cerro Gordo 30/10/2017 30/10/2017         F          1      519946
10       FY 18        IA Cerro Gordo 02/11/2017 02/11/2017         F          2      816240
11       FY 18        IA Cerro Gordo 03/11/2017 08/11/2017         F          1     1260160
12       FY 18        IA Cerro Gordo 04/11/2017 04/11/2017         F          2      757145
13       FY 18        IA Cerro Gordo 05/11/2017 05/11/2017         F          3     1022532
14       FY 18        IA Cerro Gordo 06/11/2017 06/11/2017         F          1      565500
15       FY 18        IA Cerro Gordo 06/11/2017 07/11/2017         F          1      682500
16       FY 18        IA Cerro Gordo 07/11/2017 07/11/2017         F          3      905442
17       FY 18        IA Cerro Gordo 08/11/2017 08/11/2017         F          1      128880
18       FY 18        IA Cerro Gordo 09/11/2017 09/11/2017         F          2      509776
19       FY 18        IA Cerro Gordo 10/11/2017 11/11/2017         F          1      730916
20       FY 18        IA Cerro Gordo 12/11/2017 12/11/2017         F          1      440577
  

Я столкнулся с несколькими проблемами при работе со столбцами дат.
Когда я применяю команду nrow(), это то, что я вижу:

 > nrow(data)
[1] 1168
  

но для каждой переменной (например):

 > nrow(data$Fiscal_Year)
NULL
> nrow(data$SiteState)
NULL
  

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

Комментарии:

1. Я не понимаю, что «я считаю, что они будут исправлены, если значения находятся в строках». Какие значения отсутствуют в каких строках? Уже указывалось, что вы не можете использовать nrow для векторов, подобных in nrow(data$Fiscal_Year) .

2. > Когда я хочу выполнить некоторые другие процессы, как в примере: даты <- data_clean$StartDate 1:data_clean$ ndays, у меня появляется следующее сообщение числовое выражение содержит 1115 элементов: используется только первый

3. Да, проблема связана с вашим кодом, а не с данными. На правом сайте : может быть только одно единственное значение. Вы помещаете туда 1115 значений. Вы можете воспроизвести проблему с 1:c(1,2) помощью .

Ответ №1:

Это потому, что вывод data$Fiscal_Year является вектором, а векторы не имеют строк для подсчета R, векторы являются одномерными объектами. Вам нужно использовать length(data$Fiscal_Year)

Комментарии:

1. Извините, может быть, я плохо объяснил себя. Я не пытаюсь подсчитать объекты внутри вектора. Способ, которым эта структура изложена, вызывает проблемы с некоторыми формулами позже. Я думаю, что наличие данных, в которых каждое значение находится в одной строке, решит все остальные проблемы.

2. Если вы считаете, что вам нужны данные в другом формате, можете ли вы указать то же самое в своем вопросе.

Ответ №2:

Вероятно, имеет смысл вернуться к более позднему коду и исправить его, чтобы он мог обрабатывать векторы в качестве входных данных, но вы можете сохранить структуру столбца фрейма данных, если вам нужно, используя nrow(data[, "Fiscal_Year", drop=FALSE]) . Вот пример с iris набором данных, который поставляется с R:

 data(iris)
str(iris)
# 'data.frame': 150 obs. of  5 variables:
#  $ Sepal.Length: num  5.1 4.9 4.7 4.6 5 5.4 4.6 5 4.4 4.9 ...
#  $ Sepal.Width : num  3.5 3 3.2 3.1 3.6 3.9 3.4 3.4 2.9 3.1 ...
#  $ Petal.Length: num  1.4 1.4 1.3 1.5 1.4 1.7 1.4 1.5 1.4 1.5 ...
#  $ Petal.Width : num  0.2 0.2 0.2 0.2 0.2 0.4 0.3 0.2 0.2 0.1 ...
#  $ Species     : Factor w/ 3 levels "setosa","versicolor",..: 1 1 1 1 1 1 1 1 1 1 ... nrow(iris)
# [1] 150
nrow(iris$Sepal.Length)
# NULL
nrow(iris[, "Sepal.Length"])
# NULL
nrow(iris[, "Sepal.Length", drop=FALSE])
# [1] 150 
head(iris$Sepal.Length)
[1] 5.1 4.9 4.7 4.6 5.0 5.4
head(iris[, "Sepal.Length", drop=FALSE])
#   Sepal.Length
# 1          5.1
# 2          4.9
# 3          4.7
# 4          4.6
# 5          5.0
# 6          5.4