Преобразование в цикл для применения функции - PullRequest
0 голосов
/ 10 ноября 2018

Мой набор данных выглядит так: Данные У меня есть функция, которая помогает мне создавать атрибуты, att представляет номер события в (одном и том же году) с тем же ключом и расхождением в имени, имени и имени:

N=nrow(data)
for(i in 1:N){
data$att[i] = nrow(
  subset(
    data,
    date[i] == date &
      key[i] == key &
      first_name_main[i] != first_name
  )
)}

Как я могу преобразовать / улучшить этот цикл с помощью функции apply?

спасибо!

1 Ответ

0 голосов
/ 10 ноября 2018

Вы можете использовать sapply и в основном определить ваше тело цикла как функцию, которая оценивается для каждой строки в вашем наборе данных:

data$att <- sapply(1:nrow(data), function(x){
                                    nrow(subset(data,date == date[x] & 
                                         key == key[x] &
                                         first_name != first_name_main[x]))
                                 })
...