【发布时间】:2014-03-23 01:11:10
【问题描述】:
我找到了大部分答案:Change values in row based on a column value r。有两个区别:我想根据分类变量的测试来替换值,并且我想指定要替换值的范围。我正在使用 8600 奇行和 170 列的数据框。
这是一个例子:-
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 替换月份为“三月”或“四月”的 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
有一些明显的编程初学者语法错误我无法克服!
【问题讨论】: