如何更改特定列中等于给定值的值?

use*_*144 3 r dataframe

data_active 是任何数据集.

理想情况下,当条件满足时,必须更改值.但是当我执行此代码时,它会将每个指定列中的值更改为if语句中给出的值.

for (i in 1:nrow(data_active))
{
 if(data_active[i,1]==4866)
 {
  data_active$St="MH" 
  data_active$Reg="South Central" 
  data_active$REGION="South"
  data_active$Market="86"
 }
}
Run Code Online (Sandbox Code Playgroud)

Ina*_*Ina 6

你需要习惯'用R思考'的心态.您不需要循环或if语句.只需一行代码即可完成此操作.

请尝试以下操作(将id替换为您的列名称):

data_active[data_active$id == 4866,c("St","Reg","REGION","Market")] <- c("MH","South Central", "SOUTH", "86")
Run Code Online (Sandbox Code Playgroud)

首先,该语句是查找id匹配4866的行,并从中选择由c创建的列表中的列.

data_active[data_active$id == 4866,c("St","Reg","REGION","Market")]
Run Code Online (Sandbox Code Playgroud)

其次,它将这些列的值设置为一个新列表,其中包含您想要的值.

<- c("MH","South Central", "SOUTH", "86")
Run Code Online (Sandbox Code Playgroud)