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