r - 从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 行获取值 - 它按顺序分配值。
我的问题:如何分配从同一行获取输入的值?
解决方案
利用:
df$A[df$A == 1] <- df$B[df$A == 1]
您需要将相同的索引应用于要替换的列和保存替换的列。