首页 > 解决方案 > R:使用行/列替换另一个数据框的值

问题描述

我有一个dataframe我想用另一个dataframe我拥有rowcolumn、、和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

标签: r

解决方案


我们需要首先将其转换factorcharacterstringsAsFactors = FALSE在构建两个 data.frames 时使用),然后使用matrix行/列索引的传递 a 选择“dat”的值并从“valuesreplace”列“value”分配值

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

推荐阅读