Как создать структуру данных кадра со столбцами из данных CSV в R? - PullRequest
0 голосов
/ 17 октября 2010

Ниже приведены первые пять строк импортированных данных в R:

данные [1: 5,]

    user event_date day_of_week
1 00002781A2ADA816CDB0D138146BD63323CCDAB2 2010-09-04    Saturday
2 00002D2354C7080C0868CB0E18C46157CA9F0FD4 2010-09-04    Saturday
3 00002D2354C7080C0868CB0E18C46157CA9F0FD4 2010-09-07     Tuesday
4 00002D2354C7080C0868CB0E18C46157CA9F0FD4 2010-09-08   Wednesday
5 00002D2354C7080C0868CB0E18C46157CA9F0FD4 2010-09-17      Friday
  distinct_events_a_count total_events_a_count
1                             2                          2
2                             2                          2
3                             1                          3
4                             1                          1
5                             1                          1
  events_a_duration distinct_events_b_count total_events_b_count
1                     615                       1                    1
2                      77                       1                    1
3                     201                       1                    1
4                      44                       1                    1
5                       3                       1                    1
  events_b_duration
1                      47
2                      43
3                     117
4                      74
5                      18

Проблема в том, что столбцы 6 и 9 читаются как факторы, а не числа, поэтому я не могу выполнять математические операции. Чтобы преобразовать импортированные данные в соответствующий формат, я попытался создать набор структурных данных следующим образом:

dataset<-data.frame(events_a_duration=as.numeric(c(data[,6])), events_b_duration=as.numeric(c(data[,9])))

но, проверяя значения, я заметил, что структура фрейма не содержит соответствующих значений:

 dataset[1,]


events_a_duration events_b_duration
1                   10217                    6184

Значения должны быть 615 и 47.

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

Ответы [ 2 ]

4 голосов
/ 17 октября 2010

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

> as.numeric(factor(c(615,47,42)))
[1] 3 2 1
> as.numeric(factor(c(615,42,47)))
[1] 3 1 2
> as.numeric(factor(c(615,42,47,37)))
[1] 4 2 3 1
> as.numeric(factor(c(615,42,37,47)))
[1] 4 2 1 3

Использовать as.numeric(as.character(MyFactor)).Например, смотрите ниже:

> as.numeric(as.character(factor(c(615,42,37,47))))
[1] 615  42  37  47
1 голос
/ 17 октября 2010
data <- read.csv ("data.csv", stringsAsFactors=FALSE)
...