如何更改R中的多个列值?

时间:2019-04-26 19:48:15

标签: r

我正在尝试使用dplyr将列中的某些特定值从0更改为1。我正在使用州立公园数据集,并创建了一个二进制列(游泳)来确定它是否有沙滩/游泳。

以下代码是我到目前为止尝试过的代码:

data.frame %>% mutate(Swimming = replace(Swimming, Park == c("Park1", "Park4", "Park8"), 1))

代码将Park1 $ Swimming从0更改为1,但其他公园没有更改。这是数据集的简化版本;我正在尝试将游泳柱换成30个公园。预先感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

数据输入

我不确定您的dataframe的外观,但是如果您只想将某些公园的特定列的值从0更改为1,则可以按照以下步骤操作。请下次发布可复制的示例

library(tidyverse)
df <- data_frame(
  park = paste0("park", 1:4),
  swimming = c(0,1,0,1)
)

df %>%  
  mutate(swimming = if_else(park  %in%  c("park2", "park3"), if_else(swimming == 0, 1, swimming), swimming))
#> # A tibble: 4 x 2
#>   park  swimming
#>   <chr>    <dbl>
#> 1 park1       0.
#> 2 park2       1.
#> 3 park3       1.
#> 4 park4       1.
``