如何在R中将下划线替换为逗号

如何在R中将下划线替换为逗号,r,R,我正在学习R编程,这里是我的数据示例 trip_id start_location start_time <int> <chr> <chr> 1 1 13.90834_100.50457 05:19:37 2 2 13.6753_100.63453 00:05:24 3 3 13.66348_100.71868 03:49:54 4

我正在学习R编程,这里是我的数据示例

   trip_id start_location     start_time
     <int> <chr>              <chr>     
 1       1 13.90834_100.50457 05:19:37  
 2       2 13.6753_100.63453  00:05:24  
 3       3 13.66348_100.71868 03:49:54  
 4       4 13.63345_100.71102 04:14:52  
 5       5 13.59653_100.70172 05:01:52  
 6       6 13.57542_100.79453 05:57:11  
 7       7 13.60123_100.71091 06:21:52  
 8   43875 13.94582_100.735   19:28:51  
 9   43876 14.01229_100.66908 20:58:30  
10   43877 13.79245_100.70217 22:09:30 
trip\u id开始位置开始时间
1       1 13.90834_100.50457 05:19:37  
2       2 13.6753_100.63453  00:05:24  
3       3 13.66348_100.71868 03:49:54  
4       4 13.63345_100.71102 04:14:52  
5       5 13.59653_100.70172 05:01:52  
6       6 13.57542_100.79453 05:57:11  
7       7 13.60123_100.71091 06:21:52  
8   43875 13.94582_100.735   19:28:51  
9   43876 14.01229_100.66908 20:58:30  
10   43877 13.79245_100.70217 22:09:30 
也是我重复的例子

Mon2 <- structure(list(trip_id = c(1L, 2L, 3L, 4L, 5L, 6L, 7L, 43875L,43876L, 43877L), start_location = c("13.90834_100.50457", "13.6753_100.63453","13.66348_100.71868", "13.63345_100.71102", "13.59653_100.70172","13.57542_100.79453", "13.60123_100.71091", "13.94582_100.735","14.01229_100.66908", "13.79245_100.70217"), start_time = c("05:19:37","00:05:24", "03:49:54", "04:14:52", "05:01:52", "05:57:11", "06:21:52","19:28:51", "20:58:30", "22:09:30")), row.names = c(NA, -10L), class = c("tbl_df","tbl", "data.frame")) 

Mon2我们可以使用
str\u替换

library(dplyr)
library(stringr)
Mon2 <-  Mon2 %>% 
    mutate(start_location = str_replace(start_location, "_", ","))
-输出

Mon2
# A tibble: 10 x 3
   trip_id start_location     start_time
     <int> <chr>              <chr>     
 1       1 13.90834,100.50457 05:19:37  
 2       2 13.6753,100.63453  00:05:24  
 3       3 13.66348,100.71868 03:49:54  
 4       4 13.63345,100.71102 04:14:52  
 5       5 13.59653,100.70172 05:01:52  
 6       6 13.57542,100.79453 05:57:11  
 7       7 13.60123,100.71091 06:21:52  
 8   43875 13.94582,100.735   19:28:51  
 9   43876 14.01229,100.66908 20:58:30  
10   43877 13.79245,100.70217 22:09:30  
# A tibble: 10 x 3
#   trip_id start_location     start_time
#     <int> <chr>              <chr>     
# 1       1 13.90834,100.50457 05,19,37  
# 2       2 13.6753,100.63453  00,05,24  
# 3       3 13.66348,100.71868 03,49,54  
# 4       4 13.63345,100.71102 04,14,52  
# 5       5 13.59653,100.70172 05,01,52  
# 6       6 13.57542,100.79453 05,57,11  
# 7       7 13.60123,100.71091 06,21,52  
# 8   43875 13.94582,100.735   19,28,51  
# 9   43876 14.01229,100.66908 20,58,30  
#10   43877 13.79245,100.70217 22,09,30  
#一个tible:10 x 3
#行程id开始位置开始时间
#                         
# 1       1 13.90834,100.50457 05,19,37  
# 2       2 13.6753,100.63453  00,05,24  
# 3       3 13.66348,100.71868 03,49,54  
# 4       4 13.63345,100.71102 04,14,52  
# 5       5 13.59653,100.70172 05,01,52  
# 6       6 13.57542,100.79453 05,57,11  
# 7       7 13.60123,100.71091 06,21,52  
# 8   43875 13.94582,100.735   19,28,51  
# 9   43876 14.01229,100.66908 20,58,30  
#10   43877 13.79245,100.70217 22,09,30  

我们可以使用
str\u替换

library(dplyr)
library(stringr)
Mon2 <-  Mon2 %>% 
    mutate(start_location = str_replace(start_location, "_", ","))
-输出

Mon2
# A tibble: 10 x 3
   trip_id start_location     start_time
     <int> <chr>              <chr>     
 1       1 13.90834,100.50457 05:19:37  
 2       2 13.6753,100.63453  00:05:24  
 3       3 13.66348,100.71868 03:49:54  
 4       4 13.63345,100.71102 04:14:52  
 5       5 13.59653,100.70172 05:01:52  
 6       6 13.57542,100.79453 05:57:11  
 7       7 13.60123,100.71091 06:21:52  
 8   43875 13.94582,100.735   19:28:51  
 9   43876 14.01229,100.66908 20:58:30  
10   43877 13.79245,100.70217 22:09:30  
# A tibble: 10 x 3
#   trip_id start_location     start_time
#     <int> <chr>              <chr>     
# 1       1 13.90834,100.50457 05,19,37  
# 2       2 13.6753,100.63453  00,05,24  
# 3       3 13.66348,100.71868 03,49,54  
# 4       4 13.63345,100.71102 04,14,52  
# 5       5 13.59653,100.70172 05,01,52  
# 6       6 13.57542,100.79453 05,57,11  
# 7       7 13.60123,100.71091 06,21,52  
# 8   43875 13.94582,100.735   19,28,51  
# 9   43876 14.01229,100.66908 20,58,30  
#10   43877 13.79245,100.70217 22,09,30  
#一个tible:10 x 3
#行程id开始位置开始时间
#                         
# 1       1 13.90834,100.50457 05,19,37  
# 2       2 13.6753,100.63453  00,05,24  
# 3       3 13.66348,100.71868 03,49,54  
# 4       4 13.63345,100.71102 04,14,52  
# 5       5 13.59653,100.70172 05,01,52  
# 6       6 13.57542,100.79453 05,57,11  
# 7       7 13.60123,100.71091 06,21,52  
# 8   43875 13.94582,100.735   19,28,51  
# 9   43876 14.01229,100.66908 20,58,30  
#10   43877 13.79245,100.70217 22,09,30  

您不需要任何额外的库,可以在基本包中使用gsub

Mon2$start_location<- gsub('_', ',', Mon2$start_location )

Mon2$start\u location您不需要任何额外的库,您可以在基本包中使用gsub

Mon2$start_location<- gsub('_', ',', Mon2$start_location )

Mon2$start\u location谢谢@akrun它的工作。如果我也想替换我的开始时间列呢。比如05:19:37到05,19,37像这样?提前感谢Mon2$start_time@Yasumin您可以在整个
中使用
,就像在更新的hank you@akrun中一样。如果我也想替换我的开始时间列呢。比如05:19:37到05,19,37像这样?提前感谢Mon2$start_time@Yasumin您可以在整个
中使用
,因为在更新后的实际
sub
就足够了。如果OP只想替换第一个匹配项,那么sub就足够了。如果OP只想替换第一个匹配项,那么sub就够了