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)
你需要习惯'用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)