Как всегда, я здесь после проверки тонны информации о кодировании.Позвольте мне объяснить ситуацию, с которой я сейчас сталкиваюсь: я работаю в психологическом масштабе, направленном на доступ к развитию ребенка.В этой шкале у нас нет возможности пропустить дела , только 0, 1 или 2. К сожалению, некоторые закодировали некоторые значения как пропущенные, и я пытаюсь это исправить.
Всепропущенные случаи должны быть заполнены следующими критериями:
, если отсутствует фактическая переменная AND Если следующая переменная 2 , топропущенное будет "2";если следующая переменная 1 , то пропущенным будет «1», если следующая переменная 0 , то пропущенным будет «0»
.последний столбец не будет включен в скрипт.
Довольно легко говорить об этом, но мне сложно его кодировать.
Мой интуитивно понятный код говорит примерно так:
for (i in 1:ncol(ds)) {
if(is.na(ds[i]) & ds[i+1] == "2") ds[i] == "2"
}
И код, который вы можете воспроизвестиработать над:
ds <- data.frame(x1 = rep(sample(0:2),5),
x2 = sample(0:2),
x3 = sample(0:2),
x4 = sample(0:2))
ds[ds == 0] <- NA
for (i in 1:ncol(ds)) {
if(is.na(ds[i]) & ds[i+1] == "2") ds[i] == "2"
}
Просто чтобы прояснить, я знаю, что tidyverse (метла) действительно полезен для подобных ситуаций, и я буду рад, если кто-то сможет объяснить это с помощью среды tidyverse.
Большое спасибо!
Отредактировано : Если вы здесь, чтобы проверить ответ, добро пожаловать!Но вы также можете перейти к Функция / цикл, чтобы заменить NA значениями в соседних столбцах в R .Большое спасибо!