根据另一列中的值减去R中列中的a值

阿耶拉万

我有如下数据

#    View  date    value1 Value2 
#     a  2012-10-01 21.01  2.00
#     b  2012-10-01 22.04  3.03
#     c  2012-10-01 22.65  7.61
#     a  2012-11-01 23.11  8.46
#     b  2012-11-01 35.21  9.00
#     c  2012-11-01 35.21  9.00

structure(list(View = c("a", "b", "c", "a", "b", "c"), date = c("2012-10-01", 
"2012-10-01", "2012-10-01", "2012-11-01", "2012-11-01", "2012-11-01"
), value1 = c(21.01, 22.04, 22.65, 23.11, 35.21, 35.21), Value2 = c(2, 
3.03, 7.61, 8.46, 9, 9)), .Names = c("View", "date", "value1", 
"Value2"), row.names = c(NA, -6L), class = "data.frame")

我想创建一个新的视图“ D”,该视图是在任何给定日期中从“ c”中减去“ a”的结果。即最终得到一个看起来像这样的数据集?

#    View  date    value1 Value2 
#     a 2012-10-01 21.01  2.00
#     b 2012-10-01 22.04  3.03
#     c 2012-10-01 22.65  7.61
#     D 2012-10-01  1.61  5.61
#     a 2012-11-01 23.11  8.46
#     b 2012-11-01 35.21  9.00
#     c 2012-11-01 35.21  9.00
#     D 2012-10-01 12.1   0.54

我对R有一点了解,但我不知道该如何处理。任何建议将不胜感激。

智慧

在按以下方式对data.table进行分组后,您可以rbind使用.SD(来自唯一日期的sub data.table)创建一个新的计算行date

df[, rbind(.SD, 
     .(View = "D", value1 = value1[View == "c"] - value1[View == "a"], 
                   Value2 = Value2[View == "c"] - Value2[View == "a"])), date]

#         date View value1 Value2
#1: 2012-10-01    a  21.01   2.00
#2: 2012-10-01    b  22.04   3.03
#3: 2012-10-01    c  22.65   7.61
#4: 2012-10-01    D   1.64   5.61
#5: 2012-11-01    a  23.11   8.46
#6: 2012-11-01    b  35.21   9.00
#7: 2012-11-01    c  35.21   9.00
#8: 2012-11-01    D  12.10   0.54

为避免对列名称进行硬编码,但仍假定您要对dateView列进行操作:

# drop View column so that you can do subtraction
df[, rbind(.SD, { dt = .SD[, !"View", with = F];      
                 # subtract row c and row a and assign a new View column as D           
                 (dt[View == "c"] - dt[View == "a"])[, View := "D"][] }), date]

#         date View value1 Value2
#1: 2012-10-01    a  21.01   2.00
#2: 2012-10-01    b  22.04   3.03
#3: 2012-10-01    c  22.65   7.61
#4: 2012-10-01    D   1.64   5.61
#5: 2012-11-01    a  23.11   8.46
#6: 2012-11-01    b  35.21   9.00
#7: 2012-11-01    c  35.21   9.00
#8: 2012-11-01    D  12.10   0.54

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

根据另一列减去一列中的值

来自分类Dev

根据R中另一列的值选择列

来自分类Dev

根据 R 中另一列中的值设置一列的值

来自分类Dev

根据r中的ID从另一列中的一列中查找值

来自分类Dev

根据R中另一列的最小值获得一列的对应值

来自分类Dev

如何根据多列其他列中的值减去一列中的值?

来自分类Dev

如何根据另一列中的值填充另一列中的值?

来自分类Dev

在一列中查找重复,然后在另一列中减去值

来自分类Dev

根据Postgres中的另一列设置列的值?

来自分类Dev

猪根据另一列中的值添加列

来自分类Dev

根据另一列从列中检索值

来自分类Dev

pandas - 根据另一列更改列中的值

来自分类Dev

根据另一列中的值创建新列

来自分类Dev

根据另一列中的重复值过滤一列中的唯一值

来自分类Dev

根据另一列的结果减去DataFrames中的列

来自分类Dev

根据R中另一列中的值重置单元格值

来自分类Dev

根据R中另一列的值范围按列值选择行

来自分类Dev

根据R中另一列的值为列分配随机值

来自分类Dev

根据条件将一列中的值替换为另一列中的值

来自分类Dev

根据另一列中的值交换第一列中的值

来自分类Dev

根据另一列中的值比较一列中的两个值

来自分类Dev

根据另一列中的共识值替换一列中的NA值

来自分类Dev

R:根据另一列中的值从一列中的拆分字符串中检索数据

来自分类Dev

r-根据组中另一列中的唯一值排列列中的值

来自分类Dev

如何用另一列(熊猫)中的每个值减去列值

来自分类Dev

如果另一列中的值在列表中,则更改一列中的值[R]

来自分类Dev

根据R中的另一数据框替换一列中的值

来自分类Dev

Excel根据另一列中的值过滤列表

来自分类Dev

根据R中另一列的一部分更改列的值

Related 相关文章

  1. 1

    根据另一列减去一列中的值

  2. 2

    根据R中另一列的值选择列

  3. 3

    根据 R 中另一列中的值设置一列的值

  4. 4

    根据r中的ID从另一列中的一列中查找值

  5. 5

    根据R中另一列的最小值获得一列的对应值

  6. 6

    如何根据多列其他列中的值减去一列中的值?

  7. 7

    如何根据另一列中的值填充另一列中的值?

  8. 8

    在一列中查找重复,然后在另一列中减去值

  9. 9

    根据Postgres中的另一列设置列的值?

  10. 10

    猪根据另一列中的值添加列

  11. 11

    根据另一列从列中检索值

  12. 12

    pandas - 根据另一列更改列中的值

  13. 13

    根据另一列中的值创建新列

  14. 14

    根据另一列中的重复值过滤一列中的唯一值

  15. 15

    根据另一列的结果减去DataFrames中的列

  16. 16

    根据R中另一列中的值重置单元格值

  17. 17

    根据R中另一列的值范围按列值选择行

  18. 18

    根据R中另一列的值为列分配随机值

  19. 19

    根据条件将一列中的值替换为另一列中的值

  20. 20

    根据另一列中的值交换第一列中的值

  21. 21

    根据另一列中的值比较一列中的两个值

  22. 22

    根据另一列中的共识值替换一列中的NA值

  23. 23

    R:根据另一列中的值从一列中的拆分字符串中检索数据

  24. 24

    r-根据组中另一列中的唯一值排列列中的值

  25. 25

    如何用另一列(熊猫)中的每个值减去列值

  26. 26

    如果另一列中的值在列表中,则更改一列中的值[R]

  27. 27

    根据R中的另一数据框替换一列中的值

  28. 28

    Excel根据另一列中的值过滤列表

  29. 29

    根据R中另一列的一部分更改列的值

热门标签

归档