大きな空の 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 です。