Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/64.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/3/apache-spark/5.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中的所有_R_Dataframe_Replace - Fatal编程技术网

无法按预期替换R中的所有

无法按预期替换R中的所有,r,dataframe,replace,R,Dataframe,Replace,我知道在r中已经有关于查找和替换的问题,但我遇到了一些奇怪的问题 工作数据 a <- runif (5) b <- letters [1:10] c <- c(rep ("c-1", 4), rep(“c_5”, 6)) dt <- data.frame (a, b, c) dt a b c 0.5685937 a c-1 0.1136978 b c-1 0.9842870 c c-1 0.7871407 d c-1 0.

我知道在r中已经有关于查找和替换的问题,但我遇到了一些奇怪的问题

工作数据

a <- runif (5)
b <- letters [1:10]
c <- c(rep ("c-1", 4), rep(“c_5”, 6))
dt <- data.frame (a, b, c)
dt
    
    a     b   c
0.5685937 a c-1
0.1136978 b c-1
0.9842870 c c-1
0.7871407 d c-1
0.1031224 e c_5
0.5685937 f c_5
0.1136978 g c_5
0.9842870 h c_5
0.7871407 i c_5
0.1031224 j c_5
我尝试了以下代码

dt$c2 <- gsub("-",".",dt$c)
dt$c2 <- gsub("_",".",dt$c)
有人知道问题出在哪里吗


谢谢

在第二步中,您实际上是在覆盖第一步中写入的值。将
gsub
命令合并为一个命令

dt$c2 <- gsub("-|_",".",dt$c)

dt
#           a b   c  c2
#1  0.3959316 a c-1 c.1
#2  0.4614878 b c-1 c.1
#3  0.7252994 c c-1 c.1
#4  0.4700026 d c-1 c.1
#5  0.9995240 e c_5 c.5
#6  0.3959316 f c_5 c.5
#7  0.4614878 g c_5 c.5
#8  0.7252994 h c_5 c.5
#9  0.4700026 i c_5 c.5
#10 0.9995240 j c_5 c.5

dt$c2在对该函数的第二次调用中,您需要通过管道将新列连接到
gsub()

dt$c2
a     b   c
0.5685937 a c-1
0.1136978 b c-1
0.9842870 c c-1
0.7871407 d c-1
0.1031224 e c.5
0.5685937 f c.5
0.1136978 g c.5
0.9842870 h c.5
0.7871407 i c.5
0.1031224 j c.5
dt$c2 <- gsub("-|_",".",dt$c)

dt
#           a b   c  c2
#1  0.3959316 a c-1 c.1
#2  0.4614878 b c-1 c.1
#3  0.7252994 c c-1 c.1
#4  0.4700026 d c-1 c.1
#5  0.9995240 e c_5 c.5
#6  0.3959316 f c_5 c.5
#7  0.4614878 g c_5 c.5
#8  0.7252994 h c_5 c.5
#9  0.4700026 i c_5 c.5
#10 0.9995240 j c_5 c.5