Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/69.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/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仅适用于第一列的值_R_Mutate - Fatal编程技术网

R Mutate仅适用于第一列的值

R Mutate仅适用于第一列的值,r,mutate,R,Mutate,我试图从列的值中删除子字符串,我的数据如下所示: LBL Var1 Var2 name1 1 12 name1_A 1 13 name1_B 2 10 name2 1 11 name2_A 2 10 name2_B 3 9 我已经创建了一个在单个字符串上工作的函数,但是当我尝试改变数据帧时,它会显示第一行的结果,而不会应用于其余的行。

我试图从列的值中删除子字符串,我的数据如下所示:

LBL       Var1      Var2
name1       1        12
name1_A     1        13
name1_B     2        10
name2       1        11
name2_A     2        10
name2_B     3        9
我已经创建了一个在单个字符串上工作的函数,但是当我尝试改变数据帧时,它会显示第一行的结果,而不会应用于其余的行。我做错了什么

这是我迄今为止创建的函数:

remExt <- function(x){
  y <- str_split_fixed(x,"_",2)
  return(y[1])
}
我得到以下结果:

LBL       Var1      Var2   newLBL
name1       1        12    name1
name1_A     1        13    name1
name1_B     2        10    name1
name2       1        11    name1
name2_A     2        10    name1
name2_B     3        9     name1
我的预期结果是:

LBL       Var1      Var2   newLBL
name1       1        12    name1
name1_A     1        13    name1
name1_B     2        10    name1
name2       1        11    name2
name2_A     2        10    name2
name2_B     3        9     name2

但是似乎无法让它工作,有什么想法吗?

您只从
y
中获取第一个元素,您希望第一列包含
y[,1]

remExt <- function(x){
  y <- str_split_fixed(x,"_",2)
  return(y[,1])
}

df %>% mutate(newLBL = remExt(LBL))
      LBL Var1 Var2 newLBL
1   name1    1   12  name1
2 name1_A    1   13  name1
3 name1_B    2   10  name1
4   name2    1   11  name2
5 name2_A    2   10  name2
6 name2_B    3    9  name2

您只从
y
中获取第一个元素,您希望第一列包含
y[,1]

remExt <- function(x){
  y <- str_split_fixed(x,"_",2)
  return(y[,1])
}

df %>% mutate(newLBL = remExt(LBL))
      LBL Var1 Var2 newLBL
1   name1    1   12  name1
2 name1_A    1   13  name1
3 name1_B    2   10  name1
4   name2    1   11  name2
5 name2_A    2   10  name2
6 name2_B    3    9  name2
remExt <- function(x){
  y <- str_split_fixed(x,"_",2)
  return(y[,1])
}

df %>% mutate(newLBL = remExt(LBL))
      LBL Var1 Var2 newLBL
1   name1    1   12  name1
2 name1_A    1   13  name1
3 name1_B    2   10  name1
4   name2    1   11  name2
5 name2_A    2   10  name2
6 name2_B    3    9  name2
df %>% mutate(newLBL = str_replace(LBL,"\\_.",""))

df %>% mutate(newLBL = str_remove(LBL,"\\_."))