修改某些观察的变量

时间:2016-02-01 15:59:04

标签: r dataframe

我正在尝试更改名为" > 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}}。我想知道为什么出现这个警告,我该如何解决它。

提前致谢

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放在赋值的左侧轻松覆盖当前图层列。