簡體   English   中英

將同一數據幀中的兩行相乘

[英]Multiply two rows from same dataframe r

我有一個數據框,我想通過將兩個現有行相乘來計算新行。 我的數據框的結構如下:

structure(list(month = c("mazda", "yamaha", "car"), april = c(11, 
12, 0.1), may = c(14, 15, 0.5)), row.names = c(NA, -3L), class = c("grouped_df", 
"tbl_df", "tbl", "data.frame"), vars = "month", drop = TRUE, indices = list(
    2L, 0L, 1L), group_sizes = c(1L, 1L, 1L), biggest_group_size = 1L, labels = structure(list(
    month = c("car", "mazda", "yamaha")), row.names = c(NA, -3L
), class = "data.frame", vars = "month", drop = TRUE))

我想添加一行total ,這將是mazdacar的乘積。 如果未找到0 ,則在新行total應為0 我正在嘗試實現所需的輸出:

# A tibble: 4 x 3
# Groups:   month [4]
  month  april   may
  <chr>  <dbl> <dbl>
1 mazda   11    14  
2 yamaha  12    15  
3 car      0.1   0.5
4 total    1.1   7  

這聽起來/看起來確實像XY問題。 我建議您重新考慮一下您的常規代碼和數據設計。 例如,為什么第1列被標記為month卻又包含條目"mazda""yamaha""car""total"

對於它的價值,您可以使用

rbind(df, c(month = "total", df[df$month == "mazda", -1] * df[df$month == "car", -1]))
## A tibble: 4 x 3
## Groups:   month [4]
#  month  april   may
#  <chr>  <dbl> <dbl>
#1 mazda   11    14
#2 yamaha  12    15
#3 car      0.1   0.5
#4 total    1.1   7

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM