假设mtcars
,丰田花冠的mpg应该是23.9,而不是33.9。您将如何去做?
出于这个问题的目的,请假设可以有多排丰田花冠。
示例1:
mtcars["Toyota Corolla" & mtcars$mpg==33.9,] <- 23.9
给予
“ Toyota Corolla”和mtcars $ mpg == 33.9中的错误: 操作仅适用于数字,逻辑或复杂类型
示例2:
mtcars[mtcars$mpg==33.9,"mpg"] <- 23.9
不安全,因为mpg
可能有多个值。
答案 0 :(得分:3)
我们可以改为检查rownames
并更新值
df <- mtcars
df[rownames(df) == "Toyota Corolla", "mpg"] <- 23.9
#....
#Fiat 128 32.4 4 78.7 66 4.08 2.200 19.47 1 1 4 1
#Honda Civic 30.4 4 75.7 52 4.93 1.615 18.52 1 1 4 2
#Toyota Corolla 23.9 4 71.1 65 4.22 1.835 19.90 1 1 4 1
#Toyota Corona 21.5 4 120.1 97 3.70 2.465 20.01 1 0 3 1
#Dodge Challenger 15.5 8 318.0 150 2.76 3.520 16.87 0 0 3 2
#....
或者,如果我们想更加确定并检查mpg
变量,我们可以做
df[rownames(df) == "Toyota Corolla" & df$mpg == 33.9, "mpg"] <- 23.9