【问题标题】:How to apply condition for data frame by comparing Vector Values如何通过比较向量值来为数据框应用条件
【发布时间】:2020-08-22 12:20:03
【问题描述】:

我想将条件应用于我的数据框 x 。条件基于另一个向量。

如果我的数据框中的分支名称与向量的分支名称匹配。我想制作某些数字列 (十月,十一月,十二月,一月)在我的数据框中归零。

输入数据框 x :

Oct Nov Dec Jan Branch  Fin-Year    Year    State
143 1   89  147 Chennai F.Y.2019-20 2020    Tamil Nadu
0   1   101 98  Madurai F.Y.2020-21 2021    Tamil Nadu
148 1   206 183 Coimbatore  F.Y.2019-20 2020    Tamil Nadu
0   1   180 140 Theni   F.Y.2020-21 2021    Tamil Nadu

谢谢

【问题讨论】:

    标签: r


    【解决方案1】:

    您可以对列和行进行子集化并将值更改为 0。

    cols <- c('Oct', 'Nov', 'Dec', 'Jan')
    x[x$Branch %in% y, cols] <- 0
    
    x
    #  Oct Nov Dec Jan     Branch    Fin.Year Year     State
    #1   0   0   0   0    Chennai F.Y.2019-20 2020 TamilNadu
    #2   0   0   0   0    Madurai F.Y.2020-21 2021 TamilNadu
    #3 148   1 206 183 Coimbatore F.Y.2019-20 2020 TamilNadu
    #4   0   1 180 140      Theni F.Y.2020-21 2021 TamilNadu
    

    数据

    x <- structure(list(Oct = c(143L, 0L, 148L, 0L), Nov = c(1L, 1L, 1L, 
    1L), Dec = c(89L, 101L, 206L, 180L), Jan = c(147L, 98L, 183L, 
    140L), Branch = c("Chennai", "Madurai", "Coimbatore", "Theni"
    ), Fin.Year = c("F.Y.2019-20", "F.Y.2020-21", "F.Y.2019-20", 
    "F.Y.2020-21"), Year = c(2020L, 2021L, 2020L, 2021L), State = c("TamilNadu", 
    "TamilNadu", "TamilNadu", "TamilNadu")), class = "data.frame", 
    row.names = c(NA, -4L))
    y <- c("Chennai", "Madurai")
    

    【讨论】:

      猜你喜欢
      • 2021-02-03
      • 2021-10-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多