根据列值更改行中的值并replace指定的列范围
我发现我的答案大部分是: 根据列值r更改行中的值 。 有两个区别:我想基于分类variables的testing来replace值,我想指定我想要replace的值的范围。 我正在处理一个8600奇数行和170列的dataframe。
这是一个例子:
x = data.frame(c("Jan", "Feb", "March", "April"), c(9,3,4,6), c(8, 12,9,11), c(10, 9, 7, 0.6)) names(x) = c("Month","VAR1","VAR2", "VAR3")
我想用NA
来replace月份为“March”或“April”的VAR2和VAR3(而不是VAR1)的所有值。
我试过: x[x$Month==c("March", "April"), ] <- data.frame('x', NA, 3:4)
但是我得到错误
Warning message: In `[<-.factor`(`*tmp*`, iseq, value = c(1L, 1L)) : invalid factor level, NA generated
和print(x)
给出:
Month VAR1 VAR2 VAR3 1 Jan 9 8 10 2 Feb 3 12 9 3 <NA> NA 3 1 4 <NA> NA 4 1
有一些明显的编程初学者语法错误,我无法过去!
尝试:
x[x$Month %in% c("March", "April"), c("VAR2", "VAR3")] = NA