r - 更新 R data.frame 中的单个值(不是行)

标签 r dataframe

我想更新 var3 的值在 R 数据框 mydata根据一个简单的标准。

   var1  var2  var3
1  1     4     5
2  3     58    800
3  8     232   8 

我认为应该做以下事情:
mydata$var3[mydata$var3 > 500,] <- NA

但是,这会将每个匹配记录的整行替换为 NA(该行的所有单元格),而不仅仅是 var3值(单元格):
   var1  var2  var3
1  1     4     5
2  NA    NA    NA
3  8     232   8 

如何确保仅替换所选变量的值? mydata然后应该看起来像
   var1  var2  var3
1  1     4     5
2  3     58    NA
3  8     232   8 

最佳答案

使用 whicharr.ind=TRUE

> mydata[which(mydata[,3]>500, arr.ind=TRUE), 3] <- NA
> mydata
  var1 var2 var3
1    1    4    5
2    3   58   NA
3    8  232    8

或者只是修改您之前的尝试...
mydata[mydata$var3 > 500, 3] <- NA 

这也有效
mydata$var3[mydata$var3 > 500 ] <- NA   # note no comma is inside [ ]

您的尝试没有成功,因为 mydata$var3给出一个向量,你正在使用 [mydata$var3 > 500,] 索引它,就像它是一个矩阵一样所以会抛出尺寸错误。您几乎明白了,您所要做的就是删除代码中的逗号(请参阅我的最后一个选择)。

关于r - 更新 R data.frame 中的单个值(不是行),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19713130/

相关文章:

python - 来自 csv 的数据透视并存储在数据框中

python - 按时间戳合并 Pandas 数据帧

r - 拟合 3 参数威 bool 分布

r - 在 r 中的 dplyr::group_by 之后将组变量转换为组名称

R data.table J 行为

python - 如何在 pandas + python 中将值从一行传递到下一行,并使用它递归计算相同的后续值

python - 如何使用重复索引对数据框列中的值进行求和

r - 使用 knnImpute 时 preProcess() 中的 "Error: Must subset rows with a valid subscript vector"

r - 在循环内交错 R Markdown 中的表格和绘图

python - Pandas 数据框 : How to convert numeric columns into pairwise categorical data?