r - 将所有列除以第二列中的值-适用于所有行

标签 r

我有这样的数据:

dput(tbl_data[1:5])
structure(list(Name = c("Mark", "Anders", "Tom", "Vin", "Marcel", 
"Tyta", "Gerta", "Moses", "Hank", "Rita", "Margary"), Col = c(1769380097.5, 
1444462500, 1499146687.5, 1276309375, 22279500, 3114023471, 2961012500, 
3978937423.5, 1703925000, 1838885550, 1483386250), dKO1 = c(1534931323.07692, 
1794881375, 2292661687.5, 855786250, 21915500, 3056061512.25, 
3581940000, 3766909703.25, 2043300000, 2135859875, 1482031250
), dKO2 = c(1628137500, 1781982737.5, 1659391250, 741220687.5, 
41242000, 2833327766.38514, 3675450000, 3592650662.5, 1586512500, 
1934575000, 1467271250), sdi1 = c(1545572702.88461, 1748600000, 
1745026687.5, 1556481250, NaN, 3551716021.25, 3108137500, 3718036445, 
1380278750, 2217526000, 1026813750)), .Names = c("Name", "Col", 
"dKO1", "dKO2", "sdi1"), row.names = c(29L, 30L, 1278L, 1295L, 
1296L, 1297L, 1298L, 1307L, 1642L, 1674L, 1754L), class = "data.frame")

如标题所示,我想将行中的所有列除以第二列的值。第一列应该被忽略,因为它是一个名称。当然,如果可以简化工作,则可以删除第一列并将其作为行名。

我想将其应用于此数据框中的所有行。

我很简单,但是今天我的头脑无法正常工作。

最佳答案

我们可以通过复制第二列,然后除以没有第一列或第二列的数据集的子集,使长度相等

df1[-(1:2)] <- df1[-(1:2)]/df1[,2][row(df1[-(1:2)])]
df1
#       Name        Col      dKO1      dKO2      sdi1
#29      Mark 1769380098 0.8674967 0.9201740 0.8735108
#30    Anders 1444462500 1.2425947 1.2336649 1.2105541
#1278     Tom 1499146688 1.5293111 1.1068905 1.1640133
#1295     Vin 1276309375 0.6705163 0.5807531 1.2195172
#1296  Marcel   22279500 0.9836621 1.8511187       NaN
#1297    Tyta 3114023471 0.9813868 0.9098608 1.1405553
#1298   Gerta 2961012500 1.2097011 1.2412815 1.0496874
#1307   Moses 3978937424 0.9467125 0.9029171 0.9344295
#1642    Hank 1703925000 1.1991725 0.9310929 0.8100584
#1674    Rita 1838885550 1.1614969 1.0520367 1.2059076
#1754 Margary 1483386250 0.9990865 0.9891363 0.6922093

关于r - 将所有列除以第二列中的值-适用于所有行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37299206/

相关文章:

r - 使用DiagrammeR 绘制igraph 网络

r - 在 r 中使用 Parallel 和 fread 同时按 block 导入 CSV

r - 粘贴和打印的区别(影响功能结果)

r - 如何根据R基矩阵散点图中的因子对数据进行着色?

R 创建列,其中包含每行最大值的列名

r - 在 R 中截断但不舍入

r - 来自 B3/BM&F Bovespa 的网页抓取

r - 如何将绘图区域裁剪到 R 中数据的确切范围?

r - .SD 和 .SDcols 用于 data.table 连接中的 i 表达式

r - 为什么 `pivot_wider` 在 `data.table` 上不起作用