【发布时间】:2023-04-06 17:45:01
【问题描述】:
我有以下关于投资回报的数据集:
df <- structure(list(Date = structure(c(1620604800, 1620604800, 1620604800,
1620604800, 1620604800, 1627257600, 1627257600), class = c("POSIXct",
"POSIXt"), tzone = "UTC"), Client = c(56203, 56203, 56203, 56203,
56203, 56203, 56203), FundName = c("SAFRA KEPLER EQUITY HEDGE FI MULTIMERCADO",
"SAFRA KEPLER FI MULTIMERCADO", "SAFRA S&P SPECIAL FIC MULTIMERCADO",
"SAFRA AÇÕES LIVRE FIC AÇÕES", "SAFRA CONSUMO AMERICANO FIC AÇÕES BDR NÍVEL I",
"SAFRA S&P SPECIAL FIC MULTIMERCADO", "SAFRA CONSUMO AMERICANO FIC AÇÕES BDR NÍVEL I"
), Nature = c("Aplicação", "Aplicação", "Aplicação", "Aplicação",
"Aplicação", "Resgate", "Resgate"), Quantity = c(145.927569,
62.684383, 16.964545, 57.852278, 14.900635, 0, 0), Value = c(21240,
12120, 8760, 9120, 8760, -9157.45, -1125), Saldo = c(21240, 12120,
8760, 9120, 8760, 55.60576570794, 9198.89221970512), FundCode = c(25079578000106,
21144577000147, 19107923000175, 32666326000149, 19436818000180,
19107923000175, 19436818000180), NAVInitialDate = c(145.551660000114,
193.349593000021, 521.980031999759, 157.489282999886, 639.441026999615,
543.077092000283, 692.849144999869), NAVYesterday = c(147.526190999895,
196.017907999922, 531.332205999643, 166.330892999889, 675.641246000305,
531.332205999643, 675.641246000305)), row.names = c(NA, -7L), class = c("tbl_df",
"tbl", "data.frame"))
df$NAVInitialDate = df$Value / df$Quantity
“NAVInitialDate”列是每行“值/数量”的结果。 我想对 R 说的是:“如果在一行中我们有 Quantity = 0,那么 'NAVinitialDate' = ABS(Value) 除以与 FundName 相同的所有行的数量之和数量等于0"
结果应该是,对于第 6 行 > NavInitialDate = 539,793 ; 对于第 7 行 > NavInitialDate = 75,50
我该怎么做?我猜它可能需要 3 个条件
【问题讨论】:
-
尝试
ifelse申请条件。 -
@coffeinjunky 我试过 "df$NAVMC
-
在下面查看我的尝试,它在对
mutate的调用中使用了ifelse条件。在这里,mycol列就是您要查找的内容。
标签: r if-statement conditional-statements