如何创建标识行值更改的另一列的列?

mpra

我在R中有一个data.frame,其中某些列具有数值。我想确定在某一点具有行值更改的列。例如:

 A B C D E
 0 6 0 0 0
 0 6 0 1 -5
 0 0 0 2 4
 4 0 0 2 -1

我想确定,对于E列中的负行,A,B,C或D的行值与上一行是否有所不同?因此,对于E列中的-5,我要标识的列是D,因为它的行值从0变为1,对于E列中的-1,我要标识A列。一种创建另一个将A,B,C或D标识为行更改列的列的方法?先感谢您

Ben

我想您可以为前4列创建一个差异矩阵(使用数据框df):

df_diff <- rbind(0, diff(as.matrix(df[1:4])))

这会给你:

     A  B C D
[1,] 0  0 0 0
[2,] 0  0 0 1
[3,] 0 -6 0 1
[4,] 4  0 0 0

然后,sapply将索引用于数据框和其他矩阵,可以执行以下操作:

df$F <- sapply(seq_len(nrow(df)), function(i) ifelse(df[i, 5] < 0, 
                                                     names(which(df_diff[i, ] != 0))[1], 
                                                     NA_character_))

这将检查第5列中的负值,对于那些负数,请选择找到的第一列名称,该名称在不同矩阵中标识为差异(差异不为零)。否则,将放入NA新列F将包含此结果。

输出量

  A B C D  E    F
1 0 6 0 0  0 <NA>
2 0 6 0 1 -5    D
3 0 0 0 2  4 <NA>
4 4 0 0 2 -1    A

数据

df <- structure(list(A = c(0, 0, 0, 4), B = c(6, 6, 0, 0), C = c(0, 
0, 0, 0), D = c(0, 1, 2, 2), E = c(0, -5, 4, -1), F = c(NA, "D", 
NA, "A")), row.names = c(NA, -4L), class = "data.frame")

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

根据另一列的值更改相邻列的值

来自分类Dev

SQLite:如何使用另一列的两行之间的差值更新列?

来自分类Dev

根据循环内另一列的值将一列的值更改为nan

来自分类Dev

Oracle:在一列中的值更改时选择行

来自分类Dev

如何根据一列中的值更改DataGrid行的背景

来自分类Dev

如何根据一列中的值更改DataGrid行的背景

来自分类Dev

根据另一列的值更新一列

来自分类Dev

如何根据另一列中的唯一标识符识别特定列中的更改?

来自分类Dev

如何遍历CSV文件并根据另一列的值更新一列中的值

来自分类Dev

如何使用带有条件的另一列的值更新一列?

来自分类Dev

如何根据 SQL 中另一列的值更新一列?

来自分类Dev

根据另一列中的任何先前值更改列

来自分类Dev

如何创建基于同一行中另一列的值命名的新列?

来自分类Dev

R数据帧:根据另一列中的值更改第一列中的值

来自分类Dev

如何根据另一列更改矩阵中的列

来自分类Dev

根据data.table中的另一列创建一列唯一标识符

来自分类Dev

如何基于另一列的数值创建新列

来自分类Dev

如何基于另一列创建新的列?

来自分类Dev

根据另一列中的值更新列

来自分类Dev

用另一列中的值更新列

来自分类Dev

SQL-根据另一列中的值更改计算结果

来自分类Dev

仅当另一列的值更改SQL Server时才自动增加该值

来自分类Dev

根据另一列中的值更改聚合函数内的值?

来自分类Dev

如何根据另一列的值更新“等级”列的值?

来自分类Dev

如何检查一列的值是否在另一行的另一列中

来自分类Dev

如何检查一列中的值是否可以包含比另一列中的值更多的值

来自分类Dev

根据另一列(某些行)更改一列的值

来自分类Dev

从共享另一列相同值的多个行子集中,用该列的唯一值更新1列

来自分类Dev

如何在不使用固定大小的情况下创建两列(一列两行,另一列一行)?

Related 相关文章

  1. 1

    根据另一列的值更改相邻列的值

  2. 2

    SQLite:如何使用另一列的两行之间的差值更新列?

  3. 3

    根据循环内另一列的值将一列的值更改为nan

  4. 4

    Oracle:在一列中的值更改时选择行

  5. 5

    如何根据一列中的值更改DataGrid行的背景

  6. 6

    如何根据一列中的值更改DataGrid行的背景

  7. 7

    根据另一列的值更新一列

  8. 8

    如何根据另一列中的唯一标识符识别特定列中的更改?

  9. 9

    如何遍历CSV文件并根据另一列的值更新一列中的值

  10. 10

    如何使用带有条件的另一列的值更新一列?

  11. 11

    如何根据 SQL 中另一列的值更新一列?

  12. 12

    根据另一列中的任何先前值更改列

  13. 13

    如何创建基于同一行中另一列的值命名的新列?

  14. 14

    R数据帧:根据另一列中的值更改第一列中的值

  15. 15

    如何根据另一列更改矩阵中的列

  16. 16

    根据data.table中的另一列创建一列唯一标识符

  17. 17

    如何基于另一列的数值创建新列

  18. 18

    如何基于另一列创建新的列?

  19. 19

    根据另一列中的值更新列

  20. 20

    用另一列中的值更新列

  21. 21

    SQL-根据另一列中的值更改计算结果

  22. 22

    仅当另一列的值更改SQL Server时才自动增加该值

  23. 23

    根据另一列中的值更改聚合函数内的值?

  24. 24

    如何根据另一列的值更新“等级”列的值?

  25. 25

    如何检查一列的值是否在另一行的另一列中

  26. 26

    如何检查一列中的值是否可以包含比另一列中的值更多的值

  27. 27

    根据另一列(某些行)更改一列的值

  28. 28

    从共享另一列相同值的多个行子集中,用该列的唯一值更新1列

  29. 29

    如何在不使用固定大小的情况下创建两列(一列两行,另一列一行)?

热门标签

归档