【问题标题】:Replace string in dataframe with different column values用不同的列值替换数据框中的字符串
【发布时间】:2015-12-09 05:25:03
【问题描述】:

我的数据框看起来像:

 Tester Type    Subject Type    Time        1     2     3
 TType1         SType1          Day 1       11    2     1         
 TType1         SType2          Day 1       3     2     13
 TType1         SType1          Day 2       2     3     15
 TType2         SType3          Day 2       1     4     3
 TType3         SType3          Day 2       2     3     4
 TType1         SType1          Day 1       7     2     2
 TType2         SType1          Day 2       2     6     7

我正在尝试在主题类型列中查找所有 SType 1,并将其替换为测试人员类型中的值。所以,我的输出看起来像:

 Tester Type    Subject Type    Time        1     2     3
 TType1         TType1          Day 1       11    2     1         
 TType1         SType2          Day 1       3     2     13
 TType1         TType1          Day 2       2     3     15
 TType2         SType3          Day 2       1     4     3
 TType3         SType3          Day 2       2     3     4
 TType1         TType1          Day 1       7     2     2
 TType2         TType2          Day 2       2     6     7

【问题讨论】:

标签: r string replace


【解决方案1】:

我们可以使用ifelse

ifelse(df$SubjectType == "SType1", df$TesterType, df$SubjectType)
# [1] "TType1" "SType2" "TType1" "SType3" "SType3" "TType1" "TType2"

假设 df 作为您的数据框。

【讨论】:

    【解决方案2】:

    我们可以使用data.table。我们将“data.frame”转换为“data.table”(setDT(df1)),使用逻辑条件“i”,我们分配(:=)与“i”中的行对应的“SubjectType”为'TesterType'。

    library(data.table)
    setDT(df1)[SubjectType=='SType1', SubjectType := TesterType]
    df1
    #   TesterType SubjectType  Time X1 X2 X3
    #1:     TType1      TType1 Day 1 11  2  1
    #2:     TType1      SType2 Day 1  3  2 13
    #3:     TType1      TType1 Day 2  2  3 15
    #4:     TType2      SType3 Day 2  1  4  3
    #5:     TType3      SType3 Day 2  2  3  4
    #6:     TType1      TType1 Day 1  7  2  2
    #7:     TType2      TType2 Day 2  2  6  7
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-03-20
      • 2018-01-31
      • 2017-12-19
      • 2021-09-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-15
      相关资源
      最近更新 更多