【发布时间】:2016-02-01 15:59:03
【问题描述】:
我正在尝试更改名为“layer”的变量的值,以获取对 R 的一些观察结果。我有一个向量,其中包含要修改的观察结果的 ID:
> str(cell_black_communities)
List of 1
$ : num [1:54984] 1776 1777 1778 1779 1782 ...
还有一个带有 ID 变量的 data.frame 和一个我想要修改的名为“layer”的变量。我尝试了以下代码:
df$layer[df$ID %in% unlist(cell_black_communities)] <- -1 * (df$layer)
实际上是变量变化:
> summary(df$layer)
Min. 1st Qu. Median Mean 3rd Qu. Max.
-62570 -2392 5353 18250 37200 144900
但出现警告:In df$layer[df$ID %in% : number of items to replace is not a multiple of replacement length。我想知道为什么会出现此警告以及如何解决它。
提前致谢
【问题讨论】:
-
您当前正在尝试将数据集长度的向量分配给较小的向量,这会给您错误的值。你可以试试
df$layer2 <- ifelse(df$ID %in% unlist(cell_black_communities),-1,1) * df$layer。