2016-09-09 7 views
0

Я работаю с набором данных с несколькими опросников, которые должны были быть заполнены на различных временных точках, т.е.анкеты, заполненные в тот же день

173  9/13/2013  10/29/2013  9/26/2014 
174  10/21/2013  11/25/2013  11/3/2014 
175  7/1/2014  7/3/2015  4/27/2016 
176  1/15/2014  2/24/2014  6/10/2015 
177  3/15/2014      4/1/2015 
178  7/18/2014  9/18/2014  8/17/2015 
179  6/30/2013  8/15/2013  7/15/2014 
180  4/22/2013  6/24/2013  5/11/2014 
181  12/7/2014     12/26/2015 
182  4/2/2015  5/17/2015  4/20/2016 
183  1/12/2015  2/26/2015  1/28/2016 
184  7/18/2014  8/26/2014  8/14/2015 
185  8/27/2013  10/19/2013  9/21/2014 
186  10/29/2013  11/30/2013  11/6/2014 
187  9/17/2014  11/18/2014  10/20/2015 
188  5/10/2014  6/27/2014  6/1/2015 
189  10/4/2013      10/5/2014 
190  1/22/2013  4/11/2013    
191  10/21/2014  10/21/2014    

Я хотел бы знать, как посмотреть, как много участников, заполненные все опросные листы в тот же день, сколько участников заполнили как минимум 2 анкеты в тот же день. сколько по крайней мере 3 в тот же день и т. д. Любая помощь будет высоко оценена.

Воспроизводимые данные:

Label = c( 
    "1/25/2015", "1/25/2016", "1/26/2014", "1/26/2015", "1/27/2014", 
    "1/27/2015", "1/28/2014", "1/28/2015", "1/29/2015", "1/3/2014", 
    "1/3/2015", "1/3/2016", "1/30/2015", "1/31/2014", "1/4/2014", 
    "1/4/2015", "1/4/2016", "1/5/2014", "1/5/2015", "1/6/2014", 
    "1/6/2015", "1/7/2014", "1/7/2015", "1/8/2014", "1/8/2015", 
    "1/9/2014", "1/9/2015", "1/9/2016", "10/1/2012", "10/1/2013", 
    "10/1/2014", "10/1/2015", "10/10/2013", "10/10/2014", "10/11/2013", 
    "10/11/2014", "10/11/2015", "10/12/2013", "10/12/2014", "10/12/2015", 
    "10/13/2013", "10/13/2014", "10/13/2015", "10/14/2013", "10/14/2014", 
    "10/14/2015", "10/15/2014", "10/15/2015", "10/16/2013", "10/16/2014", 
    "10/16/2015", "10/17/2013", "10/17/2014", "10/17/2015", "10/18/2013", 
    "10/18/2014", "10/18/2015", "10/19/2013", "10/19/2014", "10/19/2015", 
    "10/2/2013", "10/2/2014", "10/20/2013", "10/20/2014", "10/20/2015", 
    "10/21/2013", "10/21/2014", "10/22/2013", "10/22/2014", "10/22/2015", 
    "10/23/2012", "10/23/2013", "10/23/2014", "10/23/2015", "10/24/2013", 
    "10/24/2014", "10/24/2015", "10/25/2013", "10/25/2014", "10/26/2013", 
    "10/26/2014", "10/26/2015", "10/27/2013", "10/27/2014", "10/27/2015", 
    "10/28/2013", "10/28/2014", "10/29/2013", "10/29/2014", "10/3/2014", 
    "10/3/2015", "10/30/2014", "10/31/2012", "10/31/2013", "10/31/2014", 
    "10/31/2015", "10/4/2013", "10/4/2014", "10/4/2015", "10/5/2014", 
    "10/5/2015", "10/6/2013", "10/6/2014", "10/6/2015", "10/7/2013", 
    "10/7/2014", "10/8/2012", "10/8/2014", "10/8/2015", "10/9/2013", 
    "10/9/2014", "10/9/2015", "11/1/2013", "11/1/2014", "11/1/2015", 
    class = "factor") 

Label = c(
    "4/6/2015", "4/7/2015", "4/9/2012", "5/12/2015", "5/13/2014", 
    "5/14/2015", "5/15/2014", "5/15/2015", "5/17/2014", "5/19/2014", 
    "5/20/2014", "5/25/2014", "5/27/2014", "5/29/2014", "5/30/2014", 
    "5/30/2015", "5/31/2015", "5/4/2014", "5/9/2015", "6/1/2015", 
    "6/10/2014", "6/11/2014", "6/11/2015", "6/12/2015", "6/16/2014", 
    "6/16/2015", "6/18/2014", "6/21/2014", "6/24/2015", "6/25/2014", 
    "6/25/2015", "6/26/2015", "6/27/2015", "6/29/2015", "6/5/2014", 
    "6/6/2015", "6/8/2014", "7/1/2014", "7/13/2014", "7/14/2015", 
    "7/16/2014", "7/2/2014", "7/21/2014", "7/25/2014", "7/27/2014", 
    "7/27/2015", "7/28/2014", "7/29/2014", "7/30/2014", "7/31/2014", 
    "7/31/2015", "7/4/2014", "7/4/2015", "8/1/2014", "8/11/2014", 
    "8/11/2015", "8/25/2014", "8/27/2015", "8/5/2014", "8/8/2014", 
    "8/9/2015", "9/1/2014", "9/10/2015", "9/15/2015", "9/22/2013", 
    "9/3/2012", "9/30/2014", "9/8/2014", "9/8/2015"), class = "factor") 

Label = c(" ", 
    "1/16/2016", "1/26/2015", "10/11/2015", "10/14/2015", "10/16/2015", 
    "10/6/2014", "10/7/2013", "11/11/2015", "11/15/2015", "11/17/2013", 
    "11/18/2013", "11/2/2015", "11/20/2013", "11/29/2013", "2/17/2014", 
    "2/17/2015", "2/21/2015", "2/23/2014", "2/25/2014", "2/25/2015", 
    "3/11/2016", "3/2/2014", "3/22/2015", "3/4/2014", "3/4/2016", 
    "4/11/2014", "4/12/2013", "4/18/2016", "4/21/2015", "4/23/2015", 
    "4/29/2015", "4/3/2015", "4/5/2016", "5/23/2015", "5/26/2015", 
    "5/27/2015", "5/28/2015", "5/29/2014", "5/29/2015", "5/8/2015", 
    "6/16/2015", "6/22/2015", "6/28/2015", "7/24/2015", "7/27/2015", 
    "7/4/2014", "7/8/2015", "9/14/2015", "9/15/2015", "9/16/2014", 
    "9/17/2014", "9/22/2014", "9/23/2014", "9/24/2014", "9/24/2015", 
    "9/26/2014", "9/28/2015", "9/30/2015", "9/9/2015"), class = "factor")), .Names = c("1A_RespDate", 
"1B_RespDate", "1C_1_RespDate", "1C_2_RespDate", 
"1C_RespDate", "2A_1_RespDate", "2A_RespDate", "2B_RespDate", 
"2C_RespDate"), row.names = c(NA, -4831L), class = "data.frame") 

ответ

0

Я позвоню dataframe ДФ:

sapply(apply(df,1,unique),length) 

даст вам ряд уникальных дат для каждого человека в качестве вектора. Наибольшее значение равно 7 и мин. 1 (все опросные листы ответили в тот же день).

which(sapply(apply(df,1,unique),length)<7) 

Дает вам указатель людей, которые заполнили как минимум 2 анкеты в тот же день.

length(which(sapply(apply(df,1,unique),length)<7)) 

Сообщите вам, сколько человек заполнило как минимум 2 анкеты в тот же день.

Edit: Это некрасиво (должно быть более чистый способ), но это, кажется, работает

which(sapply(sapply(sapply(apply(df,1,table),function(x) x==Z),which),function(x) any(x>0))) 

Z должен быть установлен на количество анкет, заполненных в тот же день.
Explaination:

apply(df,1,table) 

дает список с для каждого человека уникальные даты и сколько раз они появляются.

sapply(apply(df,1,table),function(x) x==Z) 

предоставит вам тот же список с True/False, будет ли дата отображаться ровно в Z раз.

sapply(sapply(apply(df,1,table),function(x) x==Z),which) 

даст либо «interger (0)» или положительное целое число, которое является показателем даты для человека (это не то, что нас интересует).

sapply(sapply(sapply(apply(df,1,table),function(x) x==Z),which),function(x) any(x>0)) 

даст вектор True/False, соответствующий индексу индивидуального затем следующей стадии «который» должен получить индекс для True.
Поэтому мы получаем лиц, для которых дата отображается ровно в Z раз.

+0

Спасибо, это работает отлично! Если я хочу посмотреть, были ли заполнены 3 анкеты в тот же день, я должен сделать это следующим образом: length (which (sapply (apply (df, 1, unique), length) == 3)) или length (который (sapply (apply (df, 1, unique), length) <3)) ?? Оба варианта дают мне другой ответ. –

+0

Я отредактирую свой ответ с ответом на этот вопрос. – Haboryme

+0

Если ваш вопрос полностью ответил, примите ответ, пожалуйста. – Haboryme

 Смежные вопросы

  • Нет связанных вопросов^_^