替换DataFrame中的值

3

接下来有一个快速问题....

在R中快速替换数据框中的值

如果我只想替换数据框中某些行的值,是否可以在以下代码中添加行规范:

df [df<0] =0

例如将此应用于第40-52行(不起作用):

 df[df[40:52,] < 0] = 0

有什么建议吗?非常感谢。

2个回答

4
或者简单地说:
 df[40:52,][df[40:52,] < 0] <- 0

这里是一个测试:

 test = data.frame(A = c(1,2,-1), B = c(4,-8,5), C = c(1,2,3), D = c(7,8,-9))

 #> test
 #   A  B C  D
 #1  1  4 1  7
 #2  2 -8 2  8
 #3 -1  5 3 -9

要仅替换第2和第3行的负值为0,可以执行以下操作:

 test[2:3,][test[2:3,] < 0] <- 0

您会得到:
 #> test
 #  A B C D
 #1 1 4 1 7
 #2 2 0 2 8
 #3 0 5 3 0

非常感谢!完美运作。 - Austin

2
这是另一种利用R的循环行为的方式。
df[df < 0 & 1:nrow(df) %in% 40:52] <- 0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接