2016-08-22 1 views
0

列内の同じ文字列の数を計算したい場合は、その文字列ですべての行を削除します。例:列内の同じ文字列の数を計算する - 奇数を削除する

set.seed(1) 
df <- data.frame(
Name = c(rep("Mark", 6), rep("Tom", 8), rep("Tim", 12), rep("Greg", 3), rep("Matt", 3)), 
rand = rnorm(32, 0, 1)) 

Nameを参照してください。 GregMattが3回(奇数)表示されるので、削除する必要があります。 dplyr

library(dplyr) 
df_new <- df %>% group_by(Name) %>% filter(n() %% 2 == 0) 

答えて

3

table

EvenNames = names(table(DF$Name))[as.vector(table(DF$Name))%%2==0] 
DF = DF[DF$Name %in% EvenNames,] 
3

ソリューションこれはさえも、「名前」のカウントだけ維持するdata.tableとオプションが

library(data.table) 
setDT(df)[, if(!.N%%2) .SD , by = Name] 
で、「名前」でのユニークな要素のカウント/奇数に基づいている場合使用
関連する問題