Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
r mutate(dplyr)列以“开始”;整数;_R_Dplyr_Mutate - Fatal编程技术网

r mutate(dplyr)列以“开始”;整数;

r mutate(dplyr)列以“开始”;整数;,r,dplyr,mutate,R,Dplyr,Mutate,实现这一点最惯用的方法是什么? 以下是一些玩具数据表: ID ARC_ancestor D2A1 D2B3 D3A1 D4A3 D5B3 H2A3 H2C3 H4A4 H4C2 H5A3 Chrom_3_793_G_T 0/1:3:0,3:2:15,4,0:.. 0/0:0:0,0:1:0,0,0:.. 0/0:0:0,0:1:0,0,0:.. 0/0:0:0,0:1:0,0,0:.. 0/0:0:0,0:1:0

实现这一点最惯用的方法是什么? 以下是一些玩具数据表:

ID  ARC_ancestor    D2A1    D2B3    D3A1    D4A3    D5B3    H2A3    H2C3    H4A4    H4C2    H5A3
Chrom_3_793_G_T 0/1:3:0,3:2:15,4,0:..   0/0:0:0,0:1:0,0,0:..    0/0:0:0,0:1:0,0,0:..    0/0:0:0,0:1:0,0,0:..    0/0:0:0,0:1:0,0,0:..    ./.:1:1,0:0:29,3,0:II   0/0:0:0,0:1:0,0,0:..    0/1:3:0,3:2:13,4,0:..   0/0:0:0,0:1:0,0,0:..    0/1:2:0,2:3:11,3,0:..   ./.:1:1,0:0:29,3,0:II
Chrom_3_1387_A_T    ./.:1:1,0:0:29,3,0:II   0/0:0:0,0:1:0,0,0:..    0/0:0:0,0:1:0,0,0:..    0/0:0:0,0:1:0,0,0:..    0/0:0:0,0:1:0,0,0:..    0/0:0:0,0:1:0,0,0:..    0/0:0:0,0:1:0,0,0:..    0/0:0:0,0:1:0,0,0:..    0/0:0:0,0:1:0,0,0:..    0/1:2:0,2:7:10,3,0:..   0/0:0:0,0:1:0,0,0:..
Chrom_3_1398_C_T    0/1:2:0,2:3:12,4,0:..   0/0:0:0,0:1:0,0,0:..    0/0:0:0,0:1:0,0,0:..    0/0:0:0,0:1:0,0,0:..    0/0:0:0,0:1:0,0,0:..    0/0:0:0,0:1:0,0,0:..    0/0:0:0,0:1:0,0,0:..    0/0:0:0,0:1:0,0,0:..    0/0:0:0,0:1:0,0,0:..    0/1:2:0,2:5:11,2,0:..   0/0:0:0,0:1:0,0,0:..
Chrom_3_2554_G_A    0/0:64:64,0:42:0,42,1619:.. 0/0:0:0,0:1:0,0,0:..    0/0:3:3,0:9:0,9,89:..   0/0:3:3,0:9:0,9,89:..   0/1:6:3,2:9:8,0,36:..   0/0:2:2,0:6:0,6,59:..   ./.:2:2,0:0:23,0,23:II  0/1:25:18,7:18:18,0,50:..   ./.:3:3,0:0:20,0,50:II  0/0:14:14,0:42:0,42,419:..  0/1:21:17,4:14:14,0,51:..
Chrom_3_2690_C_T    ./.:99:99,0:0:62,0,2312:II  0/0:4:4,0:12:0,12,119:..    0/0:17:17,0:50:0,51,509:..  0/0:11:11,0:33:0,33,329:..  0/0:10:10,0:3:0,0,239:..    0/0:14:14,0:42:0,42,419:..  0/1:10:7,3:16:15,0,37:..    ./.:54:46,7:6:0,4,35:II ./.:12:10,2:6:0,4,34:II 0/0:21:21,0:50:0,63,629:..  ./.:57:57,0:0:8,0,1358:II
Chrom_3_3862_A_G    0/1:130:100,30:12:11,0,52:..    0/0:5:5,0:15:0,15,149:..    0/0:7:7,0:21:0,21,209:..    ./.:5:5,0:0:14,0,104:II ./.:9:9,0:1:2,0,212:II  0/0:13:13,0:39:0,39,389:..  ./.:11:8,3:4:0,1,38:II  0/0:30:30,0:50:0,108,1079:..    0/0:11:11,0:33:0,33,329:..  ./.:79:79,0:1:2,0,1892:II   ./.:68:68,0:1:5,0,1625:II
Chrom_3_3897_C_T    0/1:139:110,29:12:11,0,39:..    0/0:7:7,0:21:0,21,209:..    0/0:8:8,0:24:0,24,239:..    ./.:7:7,0:0:8,0,158:II  ./.:9:9,0:1:2,0,212:II  0/0:17:17,0:50:0,51,509:..  ./.:12:10,2:11:0,10,44:II   0/0:30:30,0:50:0,108,1079:..    0/0:11:11,0:33:0,33,329:..  ./.:78:78,0:0:35,0,1835:II  ./.:70:70,0:0:29,0,1649:II
Chrom_3_4024_T_G    0/0:147:108,38:61:0,65,63:..    0/1:29:21,8:5:2,0,48:.. 0/1:22:19,3:9:8,0,47:.. 0/1:16:8,8:10:9,0,54:.. 0/1:11:8,3:7:5,0,44:..  0/0:19:19,0:50:0,63,629:..  0/1:19:12,7:8:7,0,46:.. 0/1:67:45,21:3:0,0,45:..    0/1:31:17,14:13:12,0,63:..  ./.:94:71,22:9:0,8,44:II    ./.:101:58,43:9:0,8,40:II
Chrom_3_4033_T_G    0/0:149:110,0:54:0,0,0:..   0/1:27:19,8:9:8,0,43:.. 0/1:22:19,3:14:13,0,42:..   0/1:15:7,8:7:5,0,50:..  0/0:11:8,0:8:0,0,0:..   0/0:19:19,0:50:0,63,629:..  0/1:18:11,7:11:10,0,46:..   0/1:72:47,25:10:9,0,51:..   0/1:33:17,16:9:7,0,56:..    ./.:94:73,21:5:0,2,38:II    0/1:103:58,45:5:3,0,45:..
R告诉我列的类型是“整数”。我想用0或1替换所有列的值。例如,如果列值以“0/1”开头,则整个列值应仅为1

0/1:2:0,2:3:12,4,0:..
将成为

1
我认为dplyr mutate适合这个任务,但我不确定从哪里开始。我想到了“重新编码”,但很明显这样的东西不起作用

DT%>%mutate(ARC_ancestor=recode('0/1'=1))
(除了第一列之外,我还需要为每一列都这样做)

因为R认为列是整数,我应该首先将它们的类型更改为character吗?我不知道如何写“如果整数以0/1开头”

此外,当它以“/”开头时,应替换为0


非常感谢您的帮助。

重新编码
是为了精确匹配,这里我们可以使用
case\u当
grepl
一起查找模式

library(dplyr)
df %>%
  mutate_at(-1, ~case_when(grepl('^0/1', .) ~ 1L, 
                           grepl('^\\./', .) ~ 0L, 
                           TRUE~ NA_integer_))))

这将替换任何与上述模式不匹配的内容

重新编码
是为了精确匹配,这里我们可以使用
case\u当
grepl
一起查找模式

library(dplyr)
df %>%
  mutate_at(-1, ~case_when(grepl('^0/1', .) ~ 1L, 
                           grepl('^\\./', .) ~ 0L, 
                           TRUE~ NA_integer_))))

这将替换任何与上述模式不匹配的内容

dt[]dt[]@Alessandro很高兴能帮上忙!如果您觉得投票按钮对您有用,请单击左侧投票按钮旁边的复选标记,随时进行投票。:-)每个帖子你只能接受一个答案。@Alessandro很高兴能帮上忙!如果您觉得投票按钮对您有用,请单击左侧投票按钮旁边的复选标记,随时进行投票。:-)每个帖子只能接受一个答案。