在某些情况下如何更改R数据帧中的列?

有时,特定列的列值与另一列有某种关系,我们可能需要根据某些条件来更改该特定列的值。我们需要进行此更改,以检查列值的更改如何对所考虑的两个列之间的关系产生影响。在R中,我们可以使用单个方括号来更改列值。

示例

请看以下数据帧-

> set.seed(1)

> x1<-rpois(20,5)

> x2<-rpois(20,2)

> x3<-runif(20,2,5)

> df<-data.frame(x1,x2,x3)

> df

x1 x2 x3

1 4 4 4.462839

2 4 1 3.941181

3 5 2 4.348798

4 8 0 3.659109

5 3 1 3.589159

6 8 1 4.368069

7 9 0 2.069994

8 6 1 3.431690

9 6 4 4.196941

10 2 1 4.078195

11 3 2 3.432859

12 3 2 4.583628

13 6 2 3.314291

14 4 1 2.734392

15 7 3 2.212037

16 5 2 2.298398

17 6 3 2.948815

18 11 0 3.555903

19 4 3 3.986015

20 7 2 3.220491

假设我们想从第2列(x2)值中减去2,如果第3列的值大于3,则可以如下所示进行操作-

> df$x2[df$x3 > 3] <- (df$x2[df$x3 > 3] - 2)

> df

x1 x2 x3

1 4 -2.375000 4.462839

2 4 -2.562500 3.941181

3 5 -2.400000 4.348798

4 8 -2.281250 3.659109

5 3 -2.777778 3.589159

6 8 -2.265625 4.368069

7 9 0.000000 2.069994

8 6 -2.234568 3.431690

9 6 -2.277778 4.196941

10 2 -2.361111 4.078195

11 3 -3.000000 3.432859

12 3 -2.666667 4.583628

13 6 -2.666667 3.314291

14 4 1.000000 2.734392

15 7 3.000000 2.212037

16 5 2.000000 2.298398

17 6 3.000000 2.948815

18 11 -2.388889 3.555903

19 4 -2.437500 3.986015

20 7 -2.285714 3.220491

如果我们想将x3小于3的值的第1列(x1)值乘以2,则可以如下所示进行操作-

> df$x1[df$x3 < 3] <- (df$x1[df$x3 < 3]*2)

> df

x1 x2 x3

1 4 -1.0937500 4.462839

2 4 -1.1406250 3.941181

3 5 -0.8800000 4.348798

4 8 -0.5351562 3.659109

5 3 -1.5925926 3.589159

6 8 -0.5332031 4.368069

7 18 0.0000000 2.069994

8 6 -0.4705075 3.431690

9 6 -0.7129630 4.196941

10 2 -0.7268519 4.078195

11 3 -2.5000000 3.432859

12 3 -1.5555556 4.583628

13 6 -1.5555556 3.314291

14 8 1.0000000 2.734392

15 14 3.0000000 2.212037

16 10 2.0000000 2.298398

17 12 3.0000000 2.948815

18 11 -0.7314815 3.555903

19 4 -1.1093750 3.986015

20 7 -0.6122449 3.220491

以上是 在某些情况下如何更改R数据帧中的列? 的全部内容, 来源链接: utcz.com/z/341050.html

回到顶部