[英]Replace value in one column with value from another column in the same row with certain condition
[英]R Replace value or keep value in one column with value from another column in the same row with certain conditions
在将某一列中的值替换为具有特定条件的同一行中另一列的值之后,我还有一个问题
我有一个包含“A”、“B”和“Dict”列的数据框
现在,前一个问题和这个问题之间的区别在于“Dict”具有“A”、“B”和“C”的值
“A”和“B”表示每一行的值应该在正确的列中,我想保持“C”不变
例如:
A B Dict
0 123 B
0 123 A
123 0 A
123 0 C
0 123 C
如果“Dict”在同一行中有A,我想将“B”中的值移动到“A”,并将该值替换为0。如果“Dict”有C,则该行不变:
A B Dict
0 123 B
123 0 A
123 0 A
123 0 C
0 123 C
目前我在上一个问题中使用的是蔡大仁的回答:
df %>%
mutate(across(A:B, ~ ifelse(Dict == cur_column(), A+B, 0)))
但它给了我
A B Dict
0 123 B
123 0 A
123 0 A
0 0 C
0 0 C
有谁知道我如何更改 function 所以当“Dict”的值为 C 它不会将行更改为零?
在条件语句中添加另一个条件怎么样?
read_table("A B Dict
0 123 B
0 123 A
123 0 A
123 0 C
0 123 C
") %>%
mutate(across(A:B, ~case_when(Dict == cur_column() ~ A+B,
Dict == "C" ~ .,
TRUE ~ 0)))
# # A tibble: 5 × 3
# A B Dict
# <dbl> <dbl> <chr>
# 1 0 123 B
# 2 123 0 A
# 3 123 0 A
# 4 123 0 C
# 5 0 123 C
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.