首页 > 解决方案 > 条件子集、操作和替换

问题描述

继上一个问题之后我提取了以下 data.frame

DF <- data.frame(A =c("One","Two","Three","Four","Five"),
                 B=c(1,1,2,2,3),
                 D=c(10,2,3,-5,5))

subset(DF, B %in% c(1,3))
     A B  D
1  One 1 10
2  Two 1  2
5 Five 3  5

但现在我想(例如)将数字乘以(比如说)五并将它们替换为原始 data.frame

以下代码

subset(DF, B %in% c(1,3))[,2:3] * 5
   B  D
1  5 50
2  5 10
5 15 25

给我我想要的数字,但我如何让他们回到

      A B  D
1   One 5 50
2   Two 5  10
3 Three 2  3
4  Four 2 -5
5  Five 15 25

答案是盯着我的脸(即索引号......但我如何得到它们)?

标签: r

解决方案


你可以做

DF[DF$B %in% c(1, 3), 2:3] <- DF[DF$B %in% c(1, 3), 2:3] * 5

DF
#      A  B  D
#1   One  5 50
#2   Two  5 10
#3 Three  2  3
#4  Four  2 -5
#5  Five 15 25

推荐阅读