R 如何查找和替换文件中的特定字符串?
我有这样的数据:R 如何查找和替换文件中的特定字符串?,r,replace,gsub,R,Replace,Gsub,我有这样的数据: Ind M1 M2 M3 M4 M5 P1 A/A Unused G/A T/T T/T P2 T/T A/A A/A A/A G/G 1 T/A A/A G/A T/T G/G 2 Unused1 A/A G/A T/T T/G 3 T/T A/A G/A T/T T/G 4 Unused1 A/A G/A A/T G/G 5 T/A A/A G/A A/T Unused1 我想用TT替换整个文件中的T/T。 请在这里找到我的数据链接 我使
Ind M1 M2 M3 M4 M5
P1 A/A Unused G/A T/T T/T
P2 T/T A/A A/A A/A G/G
1 T/A A/A G/A T/T G/G
2 Unused1 A/A G/A T/T T/G
3 T/T A/A G/A T/T T/G
4 Unused1 A/A G/A A/T G/G
5 T/A A/A G/A A/T Unused1
我想用TT替换整个文件中的T/T。
请在这里找到我的数据链接
我使用了gsub函数,但我得到的是奇怪的输出,比如
c6,7,1,2,3,4,5 c1,3,2,4,3,4,2 c2,1,1,1,1,1,1
如何用TT替换此T/T?数据:
df1 <- read.table(text="Ind M1 M2 M3 M4 M5
P1 A/A Unused G/A T/T T/T
P2 T/T A/A A/A A/A G/G
1 T/A A/A G/A T/T G/G
2 Unused1 A/A G/A T/T T/G
3 T/T A/A G/A T/T T/G
4 Unused1 A/A G/A A/T G/G
5 T/A A/A G/A A/T Unused1", header = TRUE)
使用base R,您可以执行类似的操作,假设您的数据称为您的_数据:
你能提供到目前为止你对gsub的尝试吗?tx@zx8754:OP只想在T/T上工作。我认为你对我的解决方案的编辑可能不正确,因为它替换了/全局。我添加了一个额外选项。数据是基因型,只有将所有基因型保持为A/B或AB,而不是混合,才有意义。非常确定这是OP想要实现的,但请随意回滚编辑。@zx8754:我同意您的编辑。有一种叫做Unused1的基因型:。我假设Unused1意味着NoCall,它可以通过多种方式编码。我同意你的建议。我认为基因型调用可以使用非标准的方式来完成,这与Illumina平台不同。非常感谢patl、zx8754和sathish为您所做的宝贵工作,代码工作非常出色
df1 <- data.frame(lapply( df1, function(x) gsub("T/T", "TT", x, fixed = TRUE)))
df1
# Ind M1 M2 M3 M4 M5
# 1 P1 A/A Unused G/A TT TT
# 2 P2 TT A/A A/A A/A G/G
# 3 1 T/A A/A G/A TT G/G
# 4 2 Unused1 A/A G/A TT T/G
# 5 3 TT A/A G/A TT T/G
# 6 4 Unused1 A/A G/A A/T G/G
# 7 5 T/A A/A G/A A/T Unused1
data.frame(lapply(df1, function(x) gsub("/", "", x, fixed = TRUE)))
as.data.frame(sapply(your_data, function(x) gsub("T/T", "TT", x)))
# Ind M1 M2 M3 M4 M5
#1 P1 A/A Unused G/A TT TT
#2 P2 TT A/A A/A A/A G/G
#3 1 T/A A/A G/A TT G/G
#4 2 Unused1 A/A G/A TT T/G
#5 3 TT A/A G/A TT T/G
#6 4 Unused1 A/A G/A A/T G/G
#7 5 T/A A/A G/A A/T Unused1