我的数据框看起来像:
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
答案 0 :(得分:2)
我们可以使用ifelse
ifelse(df$SubjectType == "SType1", df$TesterType, df$SubjectType)
# [1] "TType1" "SType2" "TType1" "SType3" "SType3" "TType1" "TType2"
假设df
为您的数据框。
答案 1 :(得分:2)
我们可以使用data.table
。我们将'data.frame'转换为'data.table'(setDT(df1)
),使用逻辑条件为'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