比较各列中的每一行字符串,并添加条件以求值并将结果打印在新列中

时间:2019-03-05 12:48:17

标签: r dataframe compare

我的数据框如下

response = table.query(
    IndexName='pets-index',
    KeyConditionExpression='pet_type = :value',
    ExpressionAttributeValues={
        ':value': {'S': 'cats'}
    },
    ProjectionExpression='attr1,attr2'
)

我要遍历n行的每一行并添加如下条件

string1  string2   var1  var2
  T        T        1     1    
  T        F        0     1
  F        F        0     0

我如何在R中取得成就

2 个答案:

答案 0 :(得分:2)

根据您在评论中的描述,我认为您需要

df$new_col <- with(df, ifelse(string1 & string2 & var1 > 0 & var2 > 0, var1 + var2, 0))

df
#  string1 string2 var1 var2 new_col
#1    TRUE    TRUE    1    1       2
#2    TRUE   FALSE    0    1       0
#3   FALSE   FALSE    0    0       0

如果var1var2string1并且string2TRUE都较大,则var1var2大于0,否则将new_col保持为0。

答案 1 :(得分:1)

string1 <-c(T,T,F)
string2 <-c(T,F,F)
var1 <- c(1,0,0)
var2 <- c(1,1,0)
df <- data.frame(string1,string2,var1,var2)
df
  string1 string2 var1 var2
1    TRUE    TRUE    1    1
2    TRUE   FALSE    0    1
3   FALSE   FALSE    0    0
df$new_column <- apply(df, 1, function(x) ifelse(x[1] == T & x[2] == T & x[3] > 0 & x[4] > 0, x[1]+x[2], NA))
df
  string1 string2 var1 var2 new_column
1    TRUE    TRUE    1    1          2
2    TRUE   FALSE    0    1         NA
3   FALSE   FALSE    0    0         NA

如果要在最终结果中使用NA,请用0替换0