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"
}
}
最佳答案
你需要习惯“用 R 思考”的心态。您不需要 for 循环或 if 语句。您只需一行代码即可完成此操作。
尝试以下操作(将 id 替换为您的列名):
data_active[data_active$id == 4866,c("St","Reg","REGION","Market")] <- c("MH","South Central", "SOUTH", "86")
首先,该语句查找 id 与 4866 匹配的行,并从中选择由 c 创建的列表中的列。
data_active[data_active$id == 4866,c("St","Reg","REGION","Market")]
其次,它将这些列的值设置为一个新列表,其中包含您想要的值。
<- c("MH","South Central", "SOUTH", "86")
关于r - 如何更改特定列中等于给定值的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11867968/