所以我一直在做一个项目,在其中我使用多个if-else-if条件,我所面临的问题是,只要满足第一个条件,整个列本身就会被该值填充,并且不检查其他条件。
这是我正在使用的代码片段:
index += 1
with self.env.begin(write=False) as txn:
img_key = 'image-%09d' % index
imgbuf = txn.get(img_key.encode())
#print(type(imgbuf))
buf = six.BytesIO()
buf.write(imgbuf)
buf.seek(0)
try:
img = Image.open(buf).convert('L')
except IOError:
print('Corrupted image for %d' % index)
return self[index + 1]
if self.transform is not None:
img = self.transform(img)
label_key = 'label-%09d' % index
label = str(txn.get(label_key))
if self.target_transform is not None:
label = self.target_transform(label)
因此,即使满足第一个条件,整个过程列也会被填充为'01)SOLD'
答案 0 :(得分:1)
快速浏览一下如何使用嵌套的ifelse()
:
df <- data.frame(status = c("S104", "894T", "899X", "B67", "VXT", "ABC"))
status
1 S104
2 894T
3 899X
4 B67
5 VXT
6 ABC
df$process <- with(df, ifelse(substr(status, 1, 1) == "S", "SOLD",
ifelse(substr(status, 1, 3) %in% c("894"), "SIF-SETTLED",
ifelse(substr(status, 1, 3) %in% c("899"), "SIF-PENDING",
ifelse(substr(status, 1, 1) == "B", "BANKRUPTCY",
ifelse(substr(status, 1, 1) == "V", "PRE-BANKRUPTCY", "OTHER"))))))
status process
1 S104 Sold
2 894T SIF-SETTLED
3 899X SIF-PENDING
4 B67 BANKRUPTCY
5 VXT PRE-BANKRUPTCY
6 ABC OTHER
您需要将所有相关数字包括在%in%
条件的向量中,我太懒了:)