データの形状を変更/削減しようとしています。これまでのところ、私はループ(非常に遅い)を採用していfor
ますが、私が認識していることから、これはで非常に高速であるはずPlyr
です。
私には多くのグループがあり(データセットの要素としての企業)、value
その企業のセルのいずれかに0のエントリを示すすべての企業を完全に削除したいと思います。したがって、新しいものを作成しますが、ある時点data.frame
で0を示すすべてのグループを除外します。value
for
ループ:
Data Creation:
set.seed(1)
mydf <- data.frame(firmname = sample(LETTERS[1:5], 40, replace = TRUE),
value = rpois(40, 2))
-----------------------------
splitby = mydf$firmname
new.data <- data.frame()
for (i in 1:(length(unique(splitby)))) {
temp <- subset(mydf, splitby == as.character(paste(unique(splitby)[i])))
if (all(temp$value > 0) == "TRUE") {
new.data <- rbind(new.data, temp)
}
}
Delete all empty firm factors
new.data$splitby <- factor(new.data$splitby)
plyr
パッケージでそれを達成する方法はありますか?subset
そのコンテキストで関数を使用できますか?
編集:問題の再現を目的として、BenBarnesによって提案されたデータ作成が追加されます。ベン、どうもありがとう。さらに、私のコードは、以下の回答に準拠するように変更されています。