我的数据框如下
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中取得成就
答案 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
如果var1
和var2
为string1
并且string2
和TRUE
都较大,则var1
和var2
大于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
。