我有这样的数据:
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
我希望在整个文件中将T/T
替换为TT
。
请在此处找到我的数据链接
https://www.dropbox.com/s/r1eib3grr11tjpw/data.txt?dl=0
我使用了gsub函数,但我得到的是奇怪的输出,比如
"c(6, 7, 1, 2, 3, 4, 5)" "c(1, 3, 2, 4, 3, 4, 2)" "c(2, 1, 1, 1, 1, 1, 1)
如何将此T/T
替换为TT
?
答案 0 :(得分:1)
数据:
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)
代码:
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)))
答案 1 :(得分:0)
使用基础R
您可以执行类似的操作(假设您的数据称为your_data
):
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