将所有列除以特定列,除了一个

发布于 2025-02-12 02:25:03 字数 535 浏览 2 评论 0原文

例如:我有4列的框架,我希望将列A和b划分为C,但是我希望

A   B   C   ID

4   8   23  1
5   12  325 2
6   23  56  3
73  234 21  4
23  23  213 5

我期望的结果

     A           B      C   ID
0,173913043 0,347826087 1   1
0,015384615 0,036923077 1   2
0,107142857 0,410714286 1   3
3,476190476 11,14285714 1   4
0,107981221 0,107981221 1   5

不变的列ID或没有C列C,

我有代码给出的代码我只在没有列“ ID”的情况下A和B列

columns_to_divide <- c(1,2)
results <- results[,columns_to_divide ]/results[,3]

For example : I have frame with 4 columns and I want divide columns A and B by C, but I want unchanged column ID

A   B   C   ID

4   8   23  1
5   12  325 2
6   23  56  3
73  234 21  4
23  23  213 5

The result which i expect is

     A           B      C   ID
0,173913043 0,347826087 1   1
0,015384615 0,036923077 1   2
0,107142857 0,410714286 1   3
3,476190476 11,14285714 1   4
0,107981221 0,107981221 1   5

or without the column C, doesn't matter

So, I have the code which give me only columns A and B without the column 'ID'

columns_to_divide <- c(1,2)
results <- results[,columns_to_divide ]/results[,3]

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

-小熊_ 2025-02-19 02:25:03

我们可以使用突变,该可以在列中创建或改变值。 说要更改A和B列,然后我们可以定义一个函数,以将这两个列除以C。

library(dplyr)
dat %>% mutate(across(c(A, B), function(x) x/C))
            A           B   C ID
1: 0.17391304  0.34782609  23  1
2: 0.01538462  0.03692308 325  2
3: 0.10714286  0.41071429  56  3
4: 3.47619048 11.14285714  21  4
5: 0.10798122  0.10798122 213  5

We can use mutate, which creates or alters the values in a column. across says to alter columns A and B, and then we can define a function to divide both of these columns by C.

library(dplyr)
dat %>% mutate(across(c(A, B), function(x) x/C))
            A           B   C ID
1: 0.17391304  0.34782609  23  1
2: 0.01538462  0.03692308 325  2
3: 0.10714286  0.41071429  56  3
4: 3.47619048 11.14285714  21  4
5: 0.10798122  0.10798122 213  5
三生一梦 2025-02-19 02:25:03
div = c("A", "B")
div_by = "C"
DF[div] <- DF[div] / DF[[div_by]]

#            A           B   C
# 1 0.17391304  0.34782609  23
# 2 0.01538462  0.03692308 325
# 3 0.10714286  0.41071429  56
# 4 3.47619048 11.14285714  21 
# 5 0.10798122  0.10798122 213

数据

DF data.frame(
  A = c(4, 5, 6, 73, 23), B = c(8, 12, 23, 234, 23), C = c(23, 325, 56, 21, 213)
)
div = c("A", "B")
div_by = "C"
DF[div] <- DF[div] / DF[[div_by]]

#            A           B   C
# 1 0.17391304  0.34782609  23
# 2 0.01538462  0.03692308 325
# 3 0.10714286  0.41071429  56
# 4 3.47619048 11.14285714  21 
# 5 0.10798122  0.10798122 213

Data

DF data.frame(
  A = c(4, 5, 6, 73, 23), B = c(8, 12, 23, 234, 23), C = c(23, 325, 56, 21, 213)
)
朮生 2025-02-19 02:25:03

创建列

A <- c(4, 5, 6, 73, 23)
B <- c(8, 12, 23, 234, 23)
C <- c(23, 325, 56, 21, 213)
ID <- c(1, 2, 3, 4, 5)

添加到数据框架

df = data.frame(A, B, C, ID)

划分并打印

df$A <- df$A / df$C
df$B <- df$B / df$C
df$C <- df$C / df$C

print(df)

Create Columns

A <- c(4, 5, 6, 73, 23)
B <- c(8, 12, 23, 234, 23)
C <- c(23, 325, 56, 21, 213)
ID <- c(1, 2, 3, 4, 5)

Add to data frame

df = data.frame(A, B, C, ID)

divide by and print

df$A <- df$A / df$C
df$B <- df$B / df$C
df$C <- df$C / df$C

print(df)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文