簡體   English   中英

mutate_if 用於數字列除以行和

[英]mutate_if for numeric colums divided by rowsums

我只是在尋找一個優雅的 1 班輪,它將每個數字列除以這些數字列的行和。 我想使用 mutate_if 只是不知道語法應該如何

data<-data.frame(date=seq(from=as.Date('2020-01-01'),to=as.Date('2020-01-05'),by="days"),
             a=sample(1:10,5),
             b=sample(1:10,5),
             c=sample(1:10,5))

我們可以使用base R

i1 <- sapply(data, is.numeric)
data[i1] <- data[i1]/rowSums(data[i1])

或使用dplyr

library(dplyr)
data %>%
    mutate(tmp = select(., where(is.numeric)) %>%
      rowSums, across(where(is.numeric), ~ ./tmp), tmp = NULL)

暫無
暫無

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

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