Tôi có một dataframe như thế này:thêm giá trị cột dựa trên các cột khác trong khung dữ liệu sử dụng cho và nếu
id adit diag1 diag2
2 3 4230 2234
3 5 3345 4456
4 6 4567 4467
Tôi muốn thêm 2 cột khác, dse1
và dse2
sử dụng pseudo-code dưới đây:
if diag1 contains 4230 then dse1 = 1 else dse1 = 0
if diag2 contains 4567 then dse2 =1 else dse2 = 0
tôi sử dụng này:
for (i in 1 : nrow(dse)){
for (j in 3: ncol(dse)){
if dse[i,j] %in% ("4320"){dse$dse1 = 1}
else{dse$dse1 = 0}
if dse[i,j] %in% ("4567"){dse$dse2 = 1}
else{dse$dse2 = 0}
}
}
Nhưng những làm không t làm việc.
Tất cả các câu trả lời bên dưới là tuyến đường chính xác. Tuy nhiên, nếu bạn đang sử dụng 'if/else' thì' else cần phải nằm trên cùng một dòng với kết thúc '}' từ câu lệnh 'if' của bạn. – Justin
for (i trong 1: nrow (DSE)) { for (j trong 3: ncol (DSE)) { if (DSE [i, j] == 4230) { DSE $ dse1 = 1 } khác { DSE $ dse1 = 0 } if (DSE [i, j]% trong% (4567)) {DSE $ dse2 = 1} else {DSE $ dse2 = 0} } } tôi thay đổi mã như trên, không có lỗi, nhưng kết quả là không chính xác. Tại sao? THnaks – user1582755
Bạn không chắc chắn nên đưa ra nhận xét gì. Bạn có thể chỉnh sửa câu hỏi của mình nếu cần. Ngoài ra, nếu bất kỳ câu trả lời nào dưới đây đã giải quyết được vấn đề, vui lòng đánh dấu nó là đã được trả lời bằng cách nhấp vào dấu kiểm màu xanh lục của câu hỏi để chúng tôi biết nó đã được giải quyết. – Justin