R: Заменить значения фрейма данных из другого, используя строку / столбец - PullRequest
1 голос
/ 12 апреля 2019

У меня есть dataframe, который я хочу заменить некоторыми из его значений, используя другие dataframe, которые у меня есть row, column и value информация.

dat <- data.frame(Age = c(19,22,32,24),Names = c("Bobby","Mary","Bill","Chuck"), Sport = c("Golf","Tennis","Football","Soccer"))

  Age Names    Sport
   19 Bobby     Golf
   22  Mary   Tennis
   32  Bill Football
   24 Chuck   Soccer

valuesreplace <- data.frame(row = c(1,3), column = c(3,1), value = c("Basketball","18"))

  row column      value
    1      3 Basketball
    3      1         18

Результат должен быть следующим:

  Age Names      Sport
   19 Bobby Basketball
   22  Mary     Tennis
   18  Bill   Football
   24 Chuck     Soccer

1 Ответ

2 голосов
/ 12 апреля 2019

Нам нужно сначала преобразовать factor в character (использовать stringsAsFactors = FALSE при построении обоих data.frames), а затем использовать передать matrix индекса строки / столбца, выбрать значения 'dat' и назначить значения из столбца «valuesreplace» «значение»

dat[as.matrix(valuesreplace[1:2])] <- valuesreplace$value
dat
#  Age Names      Sport
#1  19 Bobby Basketball
#2  22  Mary     Tennis
#3  18  Bill   Football
#4  24 Chuck     Soccer
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...