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

标签 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"
 }
}

最佳答案

你需要习惯“用 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/

相关文章:

r - 如何从线性拟合中提取线数和相应的方程

r - 将字母转换为它们在字母表中的相对位置 (R)

python - 如何从 DataFrame 中获取非 NaN 元素的索引和值

r - 将多列添加到 R 中的 data.table

r - 当我安装 ggplot2 的开发版本时会发生什么

r - 计算回归系数在 R 中是否具有统计显着性

r - 错误: package or namespace load failed for �shiny�: When Deploying Shiny App

python - 指定匹配日期的行数

python - 在数据帧的两列之间进行插值

python - Pandas 将不同索引级别上的 .groupby().sum() 合并到一个结果数据帧中