首页 > 解决方案 > 从R中的同一行分配值

问题描述

我只想在 A = 1 时将 B 的行值分配给 A 行。这是我到目前为止所做的:

数据框:

df <- data.frame('A' = c(1,1,2,5,4,3,1,2), 'B' = c(100,200,200,200,100,200,100,200))


        A     B
    1   1     100
    2   1     200
    3   2     200
    4   5     200
    5   4     100
    6   3     200
    7   1     100
    8   2     200

输出:

df$A[df$A == 1] <- df$B

        A     B
    1   100   100
    2   200   200
    3   2     200
    4   5     200
    5   4     100
    6   3     200
    7   200   100
    8   2     200

如您所见,第 1 行和第 2 行做了他们应该做的事情。但是,第 7 行没有,而是从第 3 行获取值 - 它按顺序分配值。

我的问题:如何分配从同一行获取输入的值?

标签: rdataframerowassignsequential

解决方案


利用:

df$A[df$A == 1] <- df$B[df$A == 1]

您需要将相同的索引应用于要替换的列和保存替换的列。


推荐阅读