R:使用行/列替换另一个数据帧的值

R:使用行/列替换另一个数据帧的值,r,R,我有一个数据框,我想用另一个数据框替换它的一些值,我有行,列,和值信息 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 Footba

我有一个
数据框
,我想用另一个
数据框
替换它的一些值,我有
,和
信息

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

我们需要首先将
因子
转换为
字符
(在构造两个数据帧时使用
stringsAsFactors=FALSE
),然后使用行/列索引的传递矩阵,选择'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

dat[as.matrix(valuesreplace[1:2])]神圣的响应时间!是的,这非常有效,这是将
因子
转换为
字符
的好提示。(我会在10分钟内接受,当它允许我)
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