0

以下は、R にインポートされたデータの最初の 5 行です。

データ[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 である必要があります。

だから私が知らないのは、インポートされたデータ列で構成されるフレームデータ構造を作成する方法です。適切なデータ構造を作成する方法を誰かが示すことができれば、非常に感謝しています。

4

2 に答える 2

4

あなたの問題は、対応する値の代わりにクラスの数を使用して、因子を整数に変換していることです。クラスが値の昇順で番号付けされていることを確認できます。

> 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
于 2010-10-17T10:35:48.607 に答える
1
data <- read.csv ("data.csv", stringsAsFactors=FALSE)
于 2010-10-17T19:47:38.503 に答える