R数据帧错误 - 替换有1行,数据有0

时间:2017-10-29 14:43:27

标签: r dataframe replace

我正在尝试在R中为一个大型进程编写一些代码,但我继续收到此错误:

<script src="https://d3js.org/d3.v4.min.js"></script>

我知道导致错误的原因是选择了零行,因此无法进行替换。但是对于我的工作流程,如果刚刚跳过该行,我不会介意。

我知道我可以用if:

来避免它
Example <- data.frame(Col1 = c(1, 2, 3, 4, 5),
                      COl2 = c("A", "B", "C", "D", "E"))

Example[Example$Col1 > 3,]$Col1 <- 3 #works fine, 2 rows were selected

Example[Example$Col1 < -5,]$Col1 <- 0 #gets an error, 0 rows were selected

Error in `$<-.data.frame`(`*tmp*`, Col1, value = 0) :
    replacement has 1 row, data has 0

但我想知道是否有更简单(或更清洁)的方法。任何提示?

1 个答案:

答案 0 :(得分:3)

这样写:

Example$Col1[Example$Col1 > 3] <- 3
Example$Col1[Example$Col1 < -5] <- 0