首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >按R中某一行中的值除以数据R中每一行中的每个元素

按R中某一行中的值除以数据R中每一行中的每个元素
EN

Stack Overflow用户
提问于 2021-06-15 01:14:10
回答 2查看 86关注 0票数 1

我想通过一个特定列中的值对数据进行标准化。换句话说,我想将每一行中的所有值除以特定列中的值。

例如:

数据文件是

代码语言:javascript
复制
Gene   P1  P2  P3   
A1      6   8   2   
A2      12  6   3   
A3      8   4   8 

我希望将每行中的所有值除以列P3的该行中的值。

代码语言:javascript
复制
Gene   P1     P2    P3   
A1      6/2   8/2   2/2   
A2      12/3  6/3   3/3   
A3      8/8   4/8   8/8 

新的数据将是:

代码语言:javascript
复制
Gene   P1  P2  P3       
A1      3   4   1   
A2      4   2   1  
A3      1   .5  1

谢谢你的帮助。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-06-15 01:22:54

使用tidyverse函数:

代码语言:javascript
复制
library(tidyverse)
df1 <- read.table(text = "Gene P1 P2 P3
A1 6 8 2
A2 12 6 3
A3 8 4 8", header = TRUE)

df1 %>% 
  mutate(across(.cols = -c(Gene), .fns = ~ .x / P3))
# Gene P1  P2 P3
#1   A1  3 4.0  1
#2   A2  4 2.0  1
#3   A3  1 0.5  1
票数 0
EN

Stack Overflow用户

发布于 2021-06-15 07:03:59

你可以直接划分列-

代码语言:javascript
复制
cols <- 2:3
df[cols] <- df[cols]/df$P3
df

#  Gene P1  P2 P3
#1   A1  3 4.0  2
#2   A2  4 2.0  3
#3   A3  1 0.5  8
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67978819

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档