ETA: точка ниже, кстати, не должна проходить через весь набор векторов столбцов, на всякий случай это было предлагаемое решение (просто сделайте то, что известно работать один раз за раз).
Существует множество примеров замены значений в одном векторе кадра данных в R с некоторым другим значением.
- Заменить значение в кадре данных на основе условного (
if
) оператора в R - заменить числа в столбце фрейма данных в r [duplicate]
А также как заменить все значения NA
на что-то еще:
То, что я ищу, аналогично последнему вопросу, но в основном пытается заменить одно значение другим. У меня возникают проблемы с созданием фрейма данных логических значений, сопоставленных с моим фактическим фреймом данных, для случаев, когда несколько столбцов соответствуют критериям или просто пытаются выполнить действия из первых двух вопросов в более чем одном столбце.
Пример:
data <- data.frame(name = rep(letters[1:3], each = 3), var1 = rep(1:9), var2 = rep(3:5, each = 3))
data
name var1 var2
1 a 1 3
2 a 2 3
3 a 3 3
4 b 4 4
5 b 5 4
6 b 6 4
7 c 7 5
8 c 8 5
9 c 9 5
И скажите, что все значения 4
в var1
и var2
равны 10
.
Я уверен, что это элементарно, и я просто не думаю об этом правильно. Я пробовал такие вещи, как:
data[data[, 2:3] == 4, ]
Это не работает, но если я делаю то же самое с data[, 2]
вместо data[, 2:3]
, все работает нормально. Кажется, что логический тест (например, is.na()
) работает с несколькими строками/столбцами, но эти численные сравнения не так хорошо воспроизводятся?
Спасибо за любые предложения!