1

大きな空の data.frame を作成し、行のグループを挿入しようとしています。多数のフォーラムで同様の質問をいくつか見ましたが、私が抱えている特定のフォーマットの問題にうまく適用できませんでした.

rbind(df,allic) から始めました # allic は df に挿入したいデータ フレームです # ただし、データセットのサイズを考えると、操作が完了するまでに 5 分半かかります。最初にデータフレームを作成し、行を置き換えると効率が向上することは理解していますが、問題を解決できませんでした。コードは次のとおりです。

初期データ:

  Order.ID                  Product
1    193505              Onion Rings
2    193505 Pineapple Cheddar Burger
3    193623            Fountain Soda
4    193623             French Fries
5    193623                Hamburger
6    193623                  Hot Dog
7    193631             French Fries
8    193631                Hamburger
9    193631                Milkshake 

製品は以下に一致しませんが、これはフォーマットの問題であるため、現在の位置に到達したフォーマットを表示するのが最善であると考えました.

nb$Order.ID <- as.factor(nb$Order.ID)
plist <- aggregate(nb$Product,list(nb$Order.ID),list)
allp <- unique(unlist(plist$x))
allic <- expand.grid(plist$x[[1]], Var2=plist$x[[1]], Var3=1)


                      Var1                     Var2 Var3
1              Onion Rings              Onion Rings    1
2 Pineapple Cheddar Burger              Onion Rings    1
3              Onion Rings Pineapple Cheddar Burger    1
4 Pineapple Cheddar Burger Pineapple Cheddar Burger    1

次に、以下を使用して空のデータフレーム (df) を作成します。

df <- data.frame(factor=rep(NA, rcnt), factor=rep(NA,rcnt), stringsAsFactors=FALSE)

rcnt は大きな任意の数値であり、操作が完了したら削除する予定です。私の問題は、次を使用してこれらの行を挿入しようとすると発生します。

df[1:4,] <- allic
head(df, n=10)


  factor factor.1
1      47       47
2      51       47
3      47       51
4      51       51
5      NA       NA
6      NA       NA
7      NA       NA
8      NA       NA

値のフォーマットを失うことなくデータフレームに行を挿入するにはどうすればよいですか? この時点で得られる助けをいただければ幸いです。

以下のコメントごとに編集:

>df[i] <- for(i in 1:nrow(plist)) {
>       allic <- expand.grid(plist$x[[i]], Var2=plist$x[[i]], Var3=1) 
>       df[i:nrow(allic),] <- sapply(allic, as.character)

私はまだRで非常に新しいですが、これはdf <- rbind(df,allic)を使用していたときに機能していました。nrow(df) は 4096 です。

4

1 に答える 1

1

as.character次のように allic をラップしてみてください。

df[1:4,] <- sapply(allic, as.character)


> df
                     factor                 factor.1
1               Onion Rings              Onion Rings
2  Pineapple Cheddar Burger              Onion Rings
3               Onion Rings Pineapple Cheddar Burger
4  Pineapple Cheddar Burger Pineapple Cheddar Burger
5                      <NA>                     <NA>
6                      <NA>                     <NA>
7                      <NA>                     <NA>
8                      <NA>                     <NA>
9                      <NA>                     <NA>
10                     <NA>                     <NA>
于 2013-03-01T22:33:34.760 に答える