gpt4 book ai didi

r - 我可以使用 R 中另一个数据帧的相应值来划分数据帧的每一列吗?

转载 作者:行者123 更新时间:2023-12-04 00:56:07 24 4
gpt4 key购买 nike

我在 R 中有两个数据框,如下所示:

#  A  B  C  D
# 4 12 1 6
# 3 5 3 8
# 6 1 9 4

其中 A、B、C、D 是列名,和

#  id  value
# A 10
# B 15
# C 12
# D 20

其中id和value是列名

我正在尝试编写代码,将每列中的所有值除以第二个数据帧中的“值”。我试过在这里搜索,使用一些包并手动编写我自己的循环但没有任何效果。我的数据框有数千列,所以我无法手动输入。请帮忙,谢谢。

最佳答案

在 baseR 中你可以做

df1 / split(df2$value, names(df1))
# A B C D
#1 0.4 0.80000000 0.08333333 0.3
#2 0.3 0.33333333 0.25000000 0.4
#3 0.6 0.06666667 0.75000000 0.2

split(df2$value, names(df1)) 返回按 names(df1) 排序的列表:

split(df2$value, names(df1)
#$A
#[1] 10
#
#$B
#[1] 15
#
#$C
#[1] 12
#
#$D
#[1] 20

df1 然后按列除以该列表的值。

数据

df1 <- structure(list(A = c(4L, 3L, 6L), B = c(12L, 5L, 1L), C = c(1L, 
3L, 9L), D = c(6L, 8L, 4L)), class = "data.frame", row.names = c(NA,
-3L))

df2 <- structure(list(id = c("A", "B", "C", "D"), value = c(10L, 15L,
12L, 20L)), class = "data.frame", row.names = c(NA, -4L))

关于r - 我可以使用 R 中另一个数据帧的相应值来划分数据帧的每一列吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62432207/

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