У меня есть следующий вопрос о том, как подставить в фрейм данных для l oop, используя другой фрейм данных для вставки значений в для l oop.
bf=read.csv('Branched_Fields.csv')
bf
ID field1 field1a field1b field2 field2a error loc
1 1000 NA 1 1 1 2
2 1001 1 2 2 2 NA
3 1003 NA 1 3 2 2
4 1202 1 NA NA 2 NA
5 1345 2 NA NA NA 2
6 1234 2 2 3 2 NA
7 1234 NA NA 3 NA 2
8 4564 NA 2 NA 2 2
bf$error <- ""
bf$loc <- ""
bf - это фрейм данных с 8 идентификаторами, которые завершили опрос с ответами на вопросы из предыдущих вопросов. Я хочу создать подмножество данных со списком идентификаторов, которые не ответили на каждый вопрос опроса, но я хочу, чтобы экземпляр NA был включен в список только в том случае, если респондент опроса должен был увидеть вопрос.
Приведенный ниже код хорошо работает для записи во фрейм данных, «объединенный» с идентификатором каждого экземпляра NA, и где находится NA (какое поле).
field1 <- subset(bf, is.na(field1), select=c(ID, error))
field1$error="field1 = NA"
combined <- field1
field1a <- subset(bf, field1>0 & is.na(field1a), select=c(ID, error))
field1a$error="field1a = NA"
combined <- field1a
field1b <- subset(bf, field1>0 & is.na(field1b), select=c(ID, error))
field1b$error="field1a = NA"
combined <- field1b
field2 <- subset(bf, is.na(field2), select=c(ID, error))
field2$error="field1a = NA"
combined <- field2
field2a <- subset(bf, field2>0 & is.na(field2a), select=c(ID, error))
field2a$error="field1a = NA"
combined <- field2a
Это приводит к приведенному ниже кадру данных, что именно то, что мне нужно. Но мне нужно сделать это с помощью опроса с более чем 1000 вопросов. Могу ли я сделать для l oop или функцию для этого?
ID error
1 1000 field1 = NA
3 1003 field1 = NA
7 1234 field1 = NA
8 4564 field1 = NA
4 1202 field1a = NA
5 1345 field1a = NA
41 1202 field1a = NA
51 1345 field1a = NA
52 1345 field1a = NA
71 1234 field1a = NA
2 1001 field1a = NA
42 1202 field1a = NA
6 1234 field1a = NA
Я думаю, что первым шагом в цикле этого является создание таблицы всех переменных, которые изменяют каждую итерацию, например ниже.
Это фрейм данных fl
Field_Name Branched Label
1 field1 field1 = NA
2 field1a field1>0 field1a = NA
3 field1b field1>0 field1b = NA
4 field2 field2 = NA
5 field2a field2>0 field2a = NA
Я очень плохо знаком с R и не знаю много о циклах, и я знаю, что это неправильно, но я думал именно об этом.
for row in fl,
fl$Field_Name <- subset(bf, is.na(fl$Field_Name), select=c(ID, error))
fl$Field_Name=fl$Label
combined <- field2
В этом случае я не знаю, как справиться со случаем, когда некоторые вопросы разветвляются от других, а некоторые нет.
Это мой первый вопрос, поэтому, пожалуйста, будьте добры, если он был задан неправильно.