擅长:python、mysql、java
<p>我强烈建议不要考虑将值向左或向右移动—这并没有充分利用R的数据帧对象,在这些对象中,列应该被视为具有完整性。因此,我认为应该根据需要的逻辑在右侧添加新列,然后(如果需要)删除所有原始列,而不是移动和删除单元格。有一种方法可以做到这一点,即创建新的amount、basket和type列,并在末尾丢弃其余的列:</p>
<pre><code>library(dplyr)
data_set <- data_set %>%
mutate(
basket_n = case_when(
# If Type1 is Normal we use its basket:
Type1 == "Normal" ~ Basket1,
# If not, then see if Type2 is normal and we can use that (and so on):
Type2 == "Normal" ~ Basket2
),
amount_n = case_when(
Type1 == "Normal" ~ Amount1,
Type2 == "Normal" ~ Amount2
),
type_n = "Normal"
) %>%
select(type_n, basket_n, amount_n)
</code></pre>