gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 16:33:29 25 4
gpt4 key购买 nike

我有这样的数据:

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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com