小编use*_*212的帖子

如何用r中的变量中的值替换数据框中的特定字符

我的数据框看起来像:

df <- read.table(text="chr     pos Ref Alt D045313 D045314 D045135 D045136 D045137 D045138
Chr1 1462191   T   C     1/1     0/1     1/1     0/0     1/1     1/1
Chr1 1463534   G   C     0/0     1/1     0/0     0/1     0/0     0/0
Chr1 1463881   T   A     0/1     0/0     1/1     0/0     1/1     1/1
Chr1 1464091   G   A     0/0     0/0     1/1     0/0     1/1     1/1
Chr1 1464651   T   C     1/1     0/0     1/1     0/1    1/1     1/1",head=F, stringsAsFactors=F)
Run Code Online (Sandbox Code Playgroud)

预期结果:

  chr     pos Ref Alt D045313 D045314 D045135 D045136 D045137 D045138
Chr1 1462191   T   C     C/C …
Run Code Online (Sandbox Code Playgroud)

r

5
推荐指数
1
解决办法
201
查看次数

如何在r中更改异构双字母

我有一个数据框:

DF = read.table(text="S01   S02     S03    S04    S05   S06
TT     CC     TT     CT     TT     00
AC     AA     AC     CC     AA     AA
CC     TC     CC     TT     CC     00
CC     AC     CC     AC     AA     CC
GG     00     TG     TT     GG     TG
GG     GA     GG     GA     GG     GG", header=T, stringsAsFactors=F)
Run Code Online (Sandbox Code Playgroud)

我想以更快的方式将所有异构值(双字母)更改为双倍"00".预期结果:

S01   S02     S03    S04    S05   S06
TT     CC     TT     00     TT     00
00     AA     00     CC     AA     AA
CC     00     CC     TT     CC     00
CC     00     CC     00     AA     CC
GG     00 …
Run Code Online (Sandbox Code Playgroud)

r

4
推荐指数
1
解决办法
53
查看次数

按条件跨多个列交换值

我有一个这样的数据框:

df = read.table(text="IDX     D1     D2       D3     D4      D5       D6      D7
 F     0/0     1/1     0/0     0/1     1/1     0/0     0/0
 F     1/1     0/0     0/0     0/0     0/0     1/1     0/0
 T     0/0     0/0     0/0     0/0     0/0     0/0     0/0
 T     0/1     0/1     0/0     1/1     0/1     0/0     0/1
 F     1/1     0/1     1/1     0/0     0/1     0/0     0/0", header=T, stringsAsFactors=F)
Run Code Online (Sandbox Code Playgroud)

如果是,我想交换0和1之间的字符 df$IDX==F

预期结果:

 IDX     D1     D2       D3     D4      D5       D6      D7
  F     1/1     0/0     1/1     1/0     0/0     1/1     1/1
  F     0/0     1/1     1/1     1/1     1/1     0/0     1/1 …
Run Code Online (Sandbox Code Playgroud)

r

3
推荐指数
1
解决办法
210
查看次数

如何从列表中查找r中另一个列表中不存在的元素

我有两个具有相同向量但长度不同的列表

list1 <- list(a = 1:10, b = 3:20)
list2 <- list(a = c(2,5,8), b = c(3,5,11,20))
Run Code Online (Sandbox Code Playgroud)

我想从每个向量中找到list1不存在于相应向量中的元素list2.对于其他脚本而不是R.回答了类似的问题.

我希望最终的名单是

lst <- list(a=c(1,3,4,6,7,9,10),b=c(4,6:10,12:19))
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助.

r

3
推荐指数
1
解决办法
1170
查看次数

在r中的数据框中提取每个字符串的第一部分

我有一个数据框M.我想提取每个字符串分隔的第一部分":".我使用strsplit但结果是一个大字符而不是数据框.有人可以帮忙吗?

M <- read.table(text=
"1/1:205,54,0:18:0:57 1/1:141,39,0:13:0:42   0/0:0,54,255:18:0:45 1/1:174,48,0:16:0:51 0/0:0,84,255:28:0:75 
 0/0:0,78,255:26:0:99 0/0:0,63,255:21:0:86   0/0:0,45,255:15:0:68 0/0:0,48,255:16:0:71 0/0:0,132,255:44:0:99
 0/0:0,78,255:26:0:89 0/0:0,78,255:26:0:89   0/0:0,36,255:12:0:47 0/0:0,33,255:11:0:44 0/0:0,108,255:36:0:99
 0/0:0,75,255:25:0:99 0/0:0,54,255:18:0:78   0/0:0,69,255:23:0:93 0/0:0,33,255:11:0:57 0/0:0,96,255:32:0:99 
 0/0:0,60,75:21:0:74  0/0:0,51,84:17:0:65    0/0:0,48,64:17:0:62  0/0:0,42,65:15:0:56  0/0:0,84,99:28:0:98 ",
head=F, stringsAsFactors=F)
S <- sapply(strsplit(M, ":"), "[", 1)
Run Code Online (Sandbox Code Playgroud)

r

2
推荐指数
1
解决办法
1675
查看次数

找到点到范围的重叠

我有一个数据帧df1:

df1 <- read.table(text=" Chr06  79641   
Chr06   82862   
Chr06   387314  
Chr06   656098  
Chr06   678491  
Chr06   1018696", header=FALSE, stringsAsFactors=FALSE)
Run Code Online (Sandbox Code Playgroud)

我想检查df1中的每一行是否包含在df2的范围内.df2中的column2是范围的开头,column3是范围的结尾.范围之间没有重叠(行之间).df2中的数据按Column1和column2排序.我为此写了一个循环,但我对此并不满意,因为如果我在df1中有几千行,它会运行很长时间.我想找到一种更有效的方法来完成这项工作(更好的没有循环).谢谢.df2数据框:

df2 <- read.table(text=" Chr05  799 870
Chr06   77914   77942
Chr06   78233   78269
Chr06   78719   78836
Chr06   79720   87043
Chr06   87223   87305
Chr06   380020  380060
Chr06   387314  387371
Chr06   654907  654988
Chr06   657929  658057
Chr06   677198  677229
Chr06   679555  680170
Chr06   1015425 1015475
Chr06   1018676 1018736
Chr06   1020564 1020592", header=FALSE, stringsAsFactors=FALSE)
Run Code Online (Sandbox Code Playgroud)

我的剧本:

df1$V3 <- FALSE
for (i in 1:dim(df1)[1]) {
  for (j …
Run Code Online (Sandbox Code Playgroud)

r bioinformatics

2
推荐指数
2
解决办法
112
查看次数

基于r中的另一个向量,为向量中的每个元素排序字母

我有一个矢量看起来像:

SNP <- c("A/G","A/C","A/C","T/C","A/G","A/C","T/G","T/C","A/C","T/G")
Run Code Online (Sandbox Code Playgroud)

第二个向量(REF)是"SNP"中每个元素的两个字母之一的向量:

REF <- c("G","C","A","C","A","A","T","T","C","T")
Run Code Online (Sandbox Code Playgroud)

如果匹配向量"REF"中的相应元素(字母),我想在前面的向量"SNP"中放置每个元素的任何字母.预期的结果是:

SNP <- c("G/A","C/A","A/C","C/T","A/G","A/C","T/G","T/C","C/A","T/G")
Run Code Online (Sandbox Code Playgroud)

r

2
推荐指数
1
解决办法
36
查看次数

根据索引列表从数据框列中提取

我有一个数据框:

df = read.table(text="ID    location    C1  C2  C3  C4  C5  C6
M01 1   A   H   H   A   A   B
M02 2   A   H   A   A   A   B
M03 3   A   B   A   A   A   B
M04 4   H   B   H   A   A   B
M05 5   H   B   H   A   A   B
M06 6   A   B   H   A   A   H
M07 7   A   B   H   B   A   H
M08 8   A   B   H   A   A   H
M09 9   A   B   H …
Run Code Online (Sandbox Code Playgroud)

r subset dataframe

2
推荐指数
1
解决办法
437
查看次数

找到r中数据框中每行的最大nchar

我有一个200列的数据框.我想找到第6列到每行最后一列的nchar的最大值.

CHROM   POS REF RANK    HETERO_COUNT    sample1 sample2 sample3 sample4 sample5
Chr20   84  C   Rank4   12  C/C C/C C/A C/C C/C
Chr20   102 TAA Rank4   8   TAA/TAA TAA/TAA TAA/TA  TAA/TAA TA/TA
Chr20   104 ACCCCC  Rank3   21  ACCCCC/ACCCCCC  ACCCCCC/ACCCCCC ACCCCC/ACCCCC   ACCCCC/ACCCCC   ACCCCC/ACCCCC
Chr20   109 C   Rank4   67  C/T C/T -/- C/T C/C
Chr20   118 A   Rank4   16  A/A C/C A/C A/A A/A
Run Code Online (Sandbox Code Playgroud)

我希望添加一个包含每行最大nchar值的列.

CHROM   POS REF RANK    HETERO_COUNT    sample1 sample2 sample3 sample4 sample5 max
Chr20   84  C   Rank4   12  C/C C/C …
Run Code Online (Sandbox Code Playgroud)

r

1
推荐指数
1
解决办法
597
查看次数

如何在r中的数据帧中切换字符

我有一个数据框:

ID        S01       S02       S03       S04       S05
M01       0|1       0|0       1|1       1|1       1|1
M02       0|0       0|0       0|0       1|1       1|0
M03       0|0       0|0       0|0       1|1       0|0
M04       0|1       0|1       0|1       0|0       0|1
M05       0|0       0|0       0|0       1|1       0|0
Run Code Online (Sandbox Code Playgroud)

我想互相切换"0"和"1".结果是预期的:

ID        S01       S02       S03       S04       S05
M01       1|0       1|1       0|0       0|0       0|0
M02       1|1       1|1       1|1       0|0       0|1
M03       1|1       1|1       1|1       0|0       1|1
M04       1|0       1|0       1|0       1|1       1|0
M05       1|1       1|1       1|1       0|0       1|1
Run Code Online (Sandbox Code Playgroud)

可以通过将"0"替换为中间值(例如"2"或其他)来完成,然后将"1"替换为"0",并将中间值替换回"1".有没有有效的方法来做到这一点?谢谢.

r

1
推荐指数
1
解决办法
291
查看次数

标签 统计

r ×10

bioinformatics ×1

dataframe ×1

subset ×1