【问题标题】:How to update entire table using existing data in R? [duplicate]如何使用 R 中的现有数据更新整个表? [复制]
【发布时间】:2021-09-28 12:44:07
【问题描述】:

我在 R 中有一个已建立的表。

mail ct 1 2 3
1000 10 100 20
2000 200 100 30

我想根据以下计算创建一个列名和行号相同但值不同的新表

mail ct 1 2 3
1000 10/1000 100/1000 20/1000
2000 200/2000 100/2000 30/2000

输出应该是这样的......

mail ct 1 2 3
1000 0.01 0.1 0.02
2000 0.1 0.05 0.015

如何在 R 中做到这一点?

【问题讨论】:

    标签: r datatable data-manipulation


    【解决方案1】:

    你可以做-

    df[-1] <- df[-1]/df$mail.ct
    df
    
    #  mail.ct    1    2     3
    #1    1000 0.01 0.10 0.020
    #2    2000 0.10 0.05 0.015
    

    【讨论】:

      【解决方案2】:

      这是一种使用dplyr的方法:

      library(dplyr)
      df1 %>%
        mutate(across(-mail.ct, ~.x/mail.ct))
      
      #  mail.ct    1    2     3
      #1    1000 0.01 0.10 0.020
      #2    2000 0.10 0.05 0.015
      

      这意味着:取df1,更改除mail.ct 之外的所有列,让它们(“.x”)除以该行的mail.ct 值。

      数据

      df1 <- data.frame(
        check.names = FALSE,
            mail.ct = c(1000L, 2000L),
                `1` = c(10L, 200L),
                `2` = c(100L, 100L),
                `3` = c(20L, 30L)
      )
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-09-16
        • 2016-03-03
        • 1970-01-01
        • 2019-06-04
        • 1970-01-01
        • 2021-03-18
        相关资源
        最近更新 更多