我正在尝试更改名为" > str(cell_black_communities)
List of 1
$ : num [1:54984] 1776 1777 1778 1779 1782 ...
"的变量的值。对于R的一些观察,我有一个载体,其中包含我想要修改的观察的ID:
data.frame
带有ID变量的layer
和名为&#34的变量; df$layer[df$ID %in% unlist(cell_black_communities)] <- -1 * (df$layer)
&#34;我想修改。我尝试了以下代码:
> 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
但会出现警告:{{1}}。我想知道为什么出现这个警告,我该如何解决它。
提前致谢
答案 0 :(得分:2)
你试过这个吗?
df$layer_mod <- ifelse(df$ID %in% unlist(cell_black_communities), <here comes modification formula>, df$layer)
因此,如果您的修改包括将1添加到图层,那么这将是:
df$layer_mod <- ifelse(df$ID %in% unlist(cell_black_communities), df$layer + 1, df$layer)
...只是将图层设置为-1
df$layer_mod <- ifelse(df$ID %in% unlist(cell_black_communities), -1, df$layer)
......改变图层的符号:
df$layer_mod <- ifelse(df$ID %in% unlist(cell_black_communities), -1 * df$layer, df$layer)
显然,这会在df中创建一个新列,但您可以通过将df$layer
放在赋值的左侧轻松覆盖当前图层列。