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