微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

R函数替换数据集中的多个值

如何解决R函数替换数据集中的多个值

我一般对R和编码都是陌生的。我正在处理HT-qPCR数据,并且有数百个基因代码需要更改为基因名称。我正在使用来自plyr软件包的函数重估,并且工作正常:

Ct1 <- revalue(Ct_data$Gene,c("AY1" = "16s"))

但是,当我有数百个要重命名的值时,我想知道是否有一种方法可以对所有样本进行循环处理?我有一个带有基因代码及其相应基因名称的excel文件,所以有人可以向我指出如何使用此excel文件重命名值的正确方向吗?

解决方法

如果替换项已存在于数据框中(将Excel文件读入R),则这是一个联接。像这样:

# 1 read your excel file into R
library(readxl)
lookup = read_excel("path/to/your_excel.xlsx")
## I'll pretend the column names are `bad_name` and `good_name`

# 2 join to your current data
library(dplyr)
Ct_data = left_join(Ct_data,by = c("Gene" = "bad_name"))

# 3 OPTIONAL manually spot-check to make sure the good names are correct
View(Ct_data[c("Gene","good_name")])

# 4 OPTIONAL if not all names are replaced,you may need to keep the original name in case `good_name` is missing
Ct_data = Ct_data %>% 
  mutate(good_name = coalesce(good_name,Gene))

# Drop the old column,keep the new
Ct_data = Ct_data %>% 
  select(-Gene) %>% 
  rename(Gen = good_name)

如果您需要更多帮助,请发布一个可重现的小示例,其中包含几行数据以说明其余问题。 dput()是共享数据的最佳方法,因为它可以复制/粘贴并保留所有类和结构信息,例如前十行的dput(Ct_data[1:10,])。选择一个相关的子集进行共享。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。